[android] 오류 : 접두사가 llvm 인 ABI의 NDK 도구 체인 폴더에 도구 체인이 없습니다.

gradel ( gradlew clean build)을 사용하여 오픈 소스 안드로이드 프로젝트 (Netguard)를 컴파일하고 싶지만 이 오류가 발생했습니다.

A problem occurred configuring project ':app'.
> Exception thrown while executing model rule: NdkComponentModelPlugin.Rules#cre
ateToolchains
   > No toolchains found in the NDK toolchains folder for ABI with prefix: llvm

나는 봉사했지만 도움이되는 것을 찾지 못했습니다. 주요 내용은 다음과 같습니다 build.gradle.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle-experimental:0.6.0-alpha1'
    }
}
allprojects {
    repositories {
        jcenter()
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

그리고 여기입니다 build.gradleapp프로젝트는 :

apply plugin: 'com.android.model.application'

model {
    android {
        compileSdkVersion = 23
        buildToolsVersion = "23.0.2"

        defaultConfig.with {
            applicationId = "eu.faircode.netguard"
            minSdkVersion.apiLevel = 21
            targetSdkVersion.apiLevel = 23
            versionCode = 2016011801
            versionName = "0.76"
            archivesBaseName = "NetGuard-v$versionName-$versionCode"
        }
    }
    android.ndk {
        moduleName = "netguard"
        toolchain = "clang"
        ldLibs.add("log")
    }
    android.sources {
        main {
            jni {
                source {
                    srcDir "src/main/jni/netguard"
                }
                exportedHeaders {
                }
            }
        }
    }
    android.buildTypes {
        release {
            minifyEnabled = true
            proguardFiles.add(file('proguard-rules.pro'))
            ndk.with {
                debuggable = true
            }
        }
    }
    android.buildTypes {
        debug {
            ndk.with {
                debuggable = true
            }
        }
    }
    android.productFlavors {
        create("all") {
        }
    }
}

dependencies {


compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.1.+'
    compile 'com.android.support:recyclerview-v7:23.1.+'
    compile 'com.squareup.picasso:picasso:2.5.+'
}

그리고 나는를 사용 gradle-2.9-all하고 android-ndk-r10e있습니다. 다른 언급이 필요한지 모르겠으므로 정보가 필요하면 의견을 말하십시오.



답변

2 년이 지났습니다. 이제 여기로 오면 다음과 같은 오류 메시지가 나타날 수 있습니다.

접두사가 mips64el-linux-android 인 ABI의 NDK 도구 체인 폴더에 도구 체인이 없습니다.

또는

접두사가 mipsel-linux-android 인 ABI의 NDK 도구 체인 폴더에 도구 체인이 없습니다.

최신 NDK는 mipsabi에 대한 지원을 제거 했으며 이전 버전의 Android gradle 플러그인은 여전히 ​​밉스 툴체인의 존재를 확인합니다. 자세한 내용은 여기를 참조하십시오 .

해결책 : 안드로이드 gradle 플러그인을 3.1 이상으로 업그레이드하십시오.

예 : 프로젝트 레벨 gradle에 다음 추가 [28-Sept-2018]

 classpath "com.android.tools.build:gradle:3.2.0"

해결 방법 : mipsel-linux-android도구를 속일 폴더 구조를 만듭니다 . 가장 쉬운 방법은에 대한 심볼릭 링크 aarch64-linux-android-4.9입니다.

# on Mac
cd  ~/Library/Android/sdk/ndk-bundle/toolchains
ln -s aarch64-linux-android-4.9 mips64el-linux-android
ln -s arm-linux-androideabi-4.9 mipsel-linux-android

이런 종류의 문제를 해결하기 위해 세 가지 옵션 이 스레드를 확인하십시오.


답변

Android Studio 3.2.1 이상

Gradle 플러그인 업그레이드

classpath 'com.android.tools.build:gradle:3.2.1'

이 오류가 발생하면 :

Could not find com.android.tools.build:gradle:3.2.1.

다음과 같이 google ()을 리포지토리에 추가하십시오.

repositories {
    google()
    jcenter()
}

행복한 코딩-:)


답변

SDK-Tools에서 NDK를 제거하여이 오류를 수정했습니다. 따라서 NDK가 필요하지 않으면 제거하십시오.


답변

Windows 8 컴퓨터에서 Android Studio를 2.0에서 2.1로 업데이트하는 동안 동일한 문제에 직면했습니다.

이에 대한 해결책을 찾았습니다. 다음 단계를 사용하십시오.

  1. https://developer.android.com/ndk/downloads/index.html 에서 Windows 용 Android NDK를 다운로드 하십시오 .
  2. 동일한 것을 추출하고 번들에서 “toolchain”폴더를 복사하십시오.
  3. C : \ android-sdk-win \ ndk-bundle 아래에 설치된 NDK 폴더 아래에 폴더를 붙여 넣습니다. [설치된 경로는 설치에 따라 다를 수 있습니다]
  4. 안드로이드 스튜디오를 다시 시작하십시오.

안드로이드 스튜디오가 안정적인 채널에서 전체 NDK 업데이트를 얻지 못하기 때문에 이런 일이 발생합니다. 프로젝트 개발에 NDK를 사용하지 않는 경우 SDK 디렉토리에서 NDK 폴더를 제거하면됩니다.


답변

오류 메시지 : “접두사 : llvm을 가진 ABI의 NDK 도구 체인 폴더에 도구 체인이 없습니다.”

NDK로 Android Studio를 새로 웹 설치 한 후 GitHub에서 NDK를 사용하는 Android 코드 샘플을 가져 와서 컴파일하려고했습니다.

결과적으로 오류가 발생했습니다.

접두사가 llvm 인 ABI의 NDK 도구 체인 폴더에 도구 체인이 없습니다.

해결책:
몇 가지 이유로 macOS의 표준 설치 프로세스에서 전체 세트를 설치하지 못했습니다.

~/Library/Android/sdk/ndk-bundle 폴더를 놓쳤다 toolchains모든 도구가있는 를 .

(이것은 다음과 같아야합니다 : ~/Library/Android/sdk/ndk-bundle/toolchains )

해결책은 NDK를 별도로 다운로드하여 열고 폴더를 복사 toolchain하여 폴더에 붙여 넣는 것입니다.

~/Library/Android/sdk/ndk-bundle

그 후 그것은 나를 위해 잘 작동했습니다.


답변

단계별 :

1) 이전 NDK 버전이 있는 페이지를 엽니 다 .

https://developer.android.com/ndk/downloads/older_releases

여기에 이미지 설명을 입력하십시오

2) 약관에 동의합니다 :

여기에 이미지 설명을 입력하십시오

3) 이전 버전 NDK(예 : 16b)을 다운로드하십시오 .

여기에 이미지 설명을 입력하십시오

4) 열려있는 toolchains디렉토리.

5)toolchains 다운로드 한 zip 파일의 폴더 에서 필요한 폴더로 폴더로 파일을 전송하십시오 toolchains.

여기에 이미지 설명을 입력하십시오

6) 프로젝트를 다시 빌드하십시오.

여기에 이미지 설명을 입력하십시오


UPD 30 Sep 2018 :
필자의 경우이 오류를 해결하기 위해 Android NDK Revision r16b를 사용했습니다. 따라서이 버전의 예제를 제시합니다.
그러나 Android NDK, 개정판 r17c (2018 년 6 월)를 사용하는 것이 좋습니다. 밉스 (주말의 의견에서 합리적인 추천)를 지원하는 마지막 것입니다.


답변

다운로드, 복사 또는 심볼릭 링크없이 이전 버전의 Android Gradle 플러그인이 제거 된 mips 툴체인을 기대하는 빈 디렉토리를 생성하여 오류를 “수정”할 수있었습니다.

mkdir -p $ANDROID_HOME/ndk-bundle/toolchains/mips64el-linux-android/prebuilt/linux-x86_64

분명히 $ANDROID_HOME여기에서 Android SDK 설치의 루트를 가리 킵니다. 당신이 맥 OS를 사용하는 경우 , 교체 linux-x86_64darwin-x86_64위의 명령이다. Windows에서는을 사용하십시오 windows-x86_64.