오류: 접두사가 llvm인 ABI의 NDK 도구 체인 폴더에서 도구 체인을 찾을 수 없습니다.
gradel을 사용하여 오픈 소스 안드로이드 프로젝트(Netguard)를 컴파일하고 싶습니다.gradlew clean build
하지만 다음 오류가 발생했습니다.
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
저는 도착했지만 도움이 되는 것을 찾지 못했습니다. 여가메니다인입기▁main▁the다▁here▁is가 있습니다.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.gradle
의 시대의app
프로젝트:
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"에 대한 했습니다.mips
abi 및 이전 버전의 안드로이드 그라들 플러그인은 여전히 mips 툴체인의 존재를 확인합니다.자세한 내용은 여기를 참조하십시오.
솔루션:Android Gradle 플러그인을 3.1 이상으로 업그레이드합니다.
예: 프로젝트 레벨 눈금에 다음을 추가합니다 [2018년 9월 28일].
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
이런 종류의 문제를 해결하기 위한 세 가지 옵션의 스레드를 확인합니다.
SDK-Tools에서 NDK를 제거하여 이 오류를 수정했습니다.NDK가 필요하지 않으면 제거합니다.
Android 스튜디오 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()
}
Windows 8 컴퓨터에서 Android 스튜디오를 2.0에서 2.1로 업데이트하는 동안 동일한 문제에 직면했습니다.
저는 그것에 대한 해결책을 찾았습니다.다음 단계를 사용하십시오.
- https://developer.android.com/ndk/downloads/index.html 에서 Windows용 Android NDK를 다운로드합니다.
- 동일한 폴더를 추출하고 번들에서 "toolchain" 폴더를 복사합니다.
- C:\android-sdk-win\ndk-bundle 아래에 설치된 NDK 폴더에 폴더를 붙여넣습니다.[설치된 경로는 설치에 따라 달라질 수 있습니다.]
- Android 스튜디오를 다시 시작합니다.
Android 스튜디오가 안정적인 채널에서 NDK 업데이트를 완전히 받지 못하기 때문에 이러한 현상이 발생합니다.프로젝트 개발에 NDK를 사용하지 않는 경우에는 SDK 디렉토리에서 NDK 폴더를 제거하기만 하면 됩니다.
오류 메시지:
접두사가 llvm인 ABI의 NDK 도구 체인 폴더에서 도구 체인을 찾을 수 없습니다.
Android Studio를 NDK로 새로 웹 설치한 후 GitHub에서 NDK를 사용한 Android 코드 샘플을 가져와 컴파일을 시도했습니다.
결과적으로 오류가 발생했습니다.
접두사가 llvm인 ABI에 대한 NDK 도구 체인 폴더에서 도구 체인을 찾을 수 없습니다.
해결책: 어떤 이유로 macOS의 표준 설치 프로세스가 완전한 세트를 설치하지 못했습니다.
~/Library/Android/sdk/ndk-bundle
folder 누된있습니다가더폴락▁folder▁missed▁had.toolchains
모든 도구를 사용하여,
식이어야 .)~/Library/Android/sdk/ndk-bundle/toolchains
)
은 NDK를 폴더를 이었습니다.toolchain
폴더에 붙여넣습니다.
~/Library/Android/sdk/ndk-bundle
단계별:
이전 NDK 버전이 있는 페이지를 엽니다.
https://developer.android.com/ndk/downloads/older_releases
계약 조건에 동의합니다.
의 이전 버전 다운로드NDK
: 숫자: 16b):
열기toolchains
디렉토리입니다.
필요한 파일 전송toolchains
를 귀하의 zip 파일에 합니다.toolchains
폴더:
프로젝트 재구축:
UPD 2018년 9월 30일:
저는 Android NDK Revision r16b를 사용하여 이 오류를 해결했습니다.그래서 저는 이 버전과 함께 예를 제시합니다.
하지만 Android NDK, Revision r17c(2018년 6월)를 사용하는 것이 좋습니다.마지막으로 mips(주말 코멘트의 합리적인 추천)를 지원합니다.
이 문제에 대한 최선의 해결책은 다음과 같습니다.
SDK Manager로 이동합니다.
다음으로 SDK 도구를 선택합니다.
NDK(병렬)를 선택 취소합니다.
적용하고 확인합니다.
아무것도 다운로드, 복사 또는 연결하지 않고 이전 버전의 Android Gradle 플러그인이 제거된 mips 툴체인을 예상하는 빈 디렉토리를 만들어 오류를 "수정"할 수 있었습니다.
mkdir -p $ANDROID_HOME/ndk-bundle/toolchains/mips64el-linux-android/prebuilt/linux-x86_64
물론. 뻔지하.$ANDROID_HOME
에는 Android SDK 설치의 루트가 나와 있습니다.MacOS를 사용하는 경우 교체linux-x86_64
와 함께darwin-x86_64
에서는 Windows 사용windows-x86_64
.
NDK가 필요없어서 제거하였습니다. Android studio의 SDK manager (Tools -> Android -> SDK manager )로 이동합니다. NDK가 설치되어 있으면 체크박스를 끄고 OK를 클릭하면 설치된 구성요소가 삭제됩니다.
나의 경우, 이 오류는 새로운 Android Studio (Android Studio 3.2.1) Java Project를 만들 때 발생했습니다.
classpath 'com.android.tools.build:gradle:2.0.0-beta6'
로 다운그레이드했습니다.
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
최상의 솔루션은 이전 버전에 머무르지 않지만, local.properties의 NDK 경로가 여전히 동일하지만 IDE는 더 이상 불평하지 않습니다.
Android NDK 18.0*은 압축을 푼 후 폴더에 모든 파일을 만들지 않는 문제가 있는 것 같습니다.이로 인해 ndk 빌드를 사용하는 앱 컴파일이 실패합니다.
NDK 17.1*(https://developer.android.com/ndk/downloads/) 등 버전을 사용하는 것이 더 좋으며 안드로이드 스튜디오 추출 tndk-dll을 기본적으로 추출하거나 사용할 수 있습니다.
문제를 해결하려면 다음으로 이동하십시오.
tools ->Sdk Manager -> Android Sdk -> SDK Tools in Android Studio 및 NDK 버전 선택을 취소하고 20.1.5948944 버전만 선택하여 설치합니다.
저는 이 기술을 사용하여 Linux(Ubuntu) 기계에서 동일한 문제를 해결했습니다.
Android Studio를 열고 Tools(도구)로 이동한 다음 Android(SDK)로 이동한 다음 SDK를 선택 취소하고 필요하지 않으면 Android Studio를 다시 시작합니다.
[https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android ][1]
이 예제를 사용해 보고 최신 NDK 문제에 직면한 사용자를 위해 이 솔루션을 따를 수 있습니다.빌드에서 .gradle 변경합니다.
classpath 'com.android.tools.build:gradle:3.0.1'
로.
classpath 'com.android.tools.build:gradle:3.1.2'
그 이유는 mips가 최신 ndk 버전에서 더 이상 사용되지 않기 때문입니다. Gradle 버전 3.1.2에는 mips에 대한 강제성이 없습니다.이러한 누락된 폴더의 존재를 가정합니다.
간단한 솔루션은 mips64el-linux-android-4.9 및 mipsel-linux-android-4.9 폴더가 포함된 다음 파일을 SDK "android-sdk\ndk-bundle\toolchains" 내의 도구 체인 폴더로 다운로드하여 압축을 푸는 것입니다.
둘러본 후 해결책은 제가 선호하는 NDK 지정을 제거하는 것이었습니다.
Android Studio → 기본 설정 → 시스템 설정 → Android SDK → SDK 도구 → NDK 선택 취소 → 적용 버튼.
프로젝트와 Gradle은 그 후 잘 정리되었고 저는 프로젝트 작업을 계속할 수 있었습니다.
이러한 현상이 발생하는 이유에 대해서는 NDK에 대한 자세한 내용을 확인하십시오.
같은 문제가 있었습니다.기본적으로 최신 NDKrc 버전을 설치합니다.최신 안정적인 릴리스로 문제가 해결되었습니다.
안드로이드 스튜디오에서 프로젝트를 컴파일할 때, 저는 가끔 다음과 같은 것을 접합니다.
오류: 접두사가 arm-linux-androideabi/llvm인 ABI에 대한 NDK 도구 체인 폴더에서 도구 체인을 찾을 수 없습니다.
관련 구성 요소를 업데이트하면 이 문제가 발생할 수 있습니다.해결방법은 Android studio (도구 -> Android -> SDK Manager ) 입니다. ndk 항목을 선택하여 삭제하십시오.프로그램에 필요한 경우 다시 설치할 수 있습니다.이렇게 하면 폴더 위치가 올바르고 이러한 문제가 발생하지 않습니다.
ndk를 제거하면 문제가 해결됩니다.
저도 비슷한 문제가 있었지만 프로젝트 요구사항 때문에 NDK version r9d를 사용하고 싶었습니다.
local.properties
경로는 로 설정되었습니다.ndk.dir=C\:\\Android\\ndk\\android-ndk-r9d
하지만 그것이 문제로 이어졌습니다.
접두사가 [toolchain-name]인 ABI의 NDK 도구 체인 폴더에서 도구 체인을 찾을 수 없습니다.
솔루션은 다음과 같습니다.
- sdk 관리자를 사용하여 최신 NDK 설치
- 누을락 toolchain [ toolchain-name ] 이서 new ndk에 전로 ndk니 복사합 다된k chain로다 -합니 chaintool사 누k복 ▁nd]▁[▁tool 경우에는 의경는우에서.
sdk\ndk-bundle\toolchains
\ndk\android-ndk-r9d\toolchains
- 필요한 모든 공구 체인이 도착할 때까지 이 프로세스를 반복합니다.
복사된 툴체인은 사용되지 않는 것으로 보이지만, 어떤 이유에서인지 그들을 위해 필요합니다.
프로젝트 수준에서 Gradle 파일은 종속성 클래스 경로 버전을 낮음에서 높음으로 늘립니다.
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
}
처럼 변하다, 변하다, 변하다, 변하다, 변하다, 변함
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
를 추가하여 해결했습니다.google()
의두 대종속성의 두 build.gradle
(프로젝트 이름). 프로젝트를 동기화합니다.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
이 질문은 필요가 없기 때문에 ndk를 제거하여 해결했습니다.
local.properties로 이동했고, 그 안에서
ndk.dir=/yo/path/for/NDK
ndk가 있는 위치로 라인을 업데이트해야 합니다.
저는 Crystax NDK를 사용하고 있었는데 원래 안드로이드 NDK가 아직도 사용되고 있는지 몰랐습니다.
내가 했던 것처럼 그것을 고치기 위해.
Android Studio File > 프로젝트 구조 및 프로젝트로 이동
Gradle 버전을 4.6 및 Android 플러그인 버전을 3.2.1로 변경
"apt2-proto.jar를 찾을 수 없습니다." 오류가 발생하면 프로젝트를 치료합니다.
build.gradle(프로젝트)로 이동합니다.
Google() 메서드(.gradle 파일)를 실행 블록의 맨 위로 이동하여 문제가 발생하는 리포지토리 순서를 검색합니다.
예를 들어, 다음을 변경합니다.
repositories {
maven { url 'https://maven.fabric.io/public' }
google() <=== from here
mavenCentral()
}
대상:
repositories {
google() <=== to here
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
"buildscript"와 "all projects" 모두에서 변경합니다.
Google()을 찾지 못한 경우 추가합니다.
Android Studio 3.2.1의 경우 업데이트
Gradle 버전 4.6
Android 플러그인 버전 3.2.1
다음으로 이동C:\Users\lalit\AppData\Local\Android\Sdk\ndk-bundle\toolchains
.
이제 폴더 이름을 찾습니다.aarch64-linux-android-4.9
이름을 로 변경합니다.mips64el-linux-android
.
안드로이드 앱을 다시 실행합니다.
나만의 로컬 안드로이드-SDK 찾기 관련 SDK off ndk를 다운로드하면 "ndk-bundle"이라는 폴더가 나옵니다.
안에는 "도구 체인"이라고 불리는 폴더가 있습니다.
우리는 내부에 mips64el 관련 파일이 없다는 것을 알게 되었습니다.
솔루션은 다음과 같습니다.
브라우저를 통해 NDK 패키지를 별도로 다운로드하려면 여기를 클릭하십시오.압축을 푼 후 "toolchains" 폴더를 열고 Android-sdk->ndk-bundle->toolchains 폴더와 비교하여 누락된 폴더를 찾아 과거 3개를 복사합니다.다시 컴파일하면 문제가 해결됩니다.
저는 다음 방법을 사용하여 문제를 해결하려고 합니다.
Android 빌드 도구 버전을 Gradle 버전과 동일하게 유지합니다.예를 들어 빌드 도구 버전이 3.3.0인 경우 Gradle 버전이 4.10.1이어야 합니다.https://developer.android.com/studio/releases/gradle-plugin 링크를 참조하여 AS(파일->프로젝트 구조->프로젝트)에서 빌드 도구 및 그라들 버전을 변경할 수 있습니다.
method1이 작동하지 않으면 ndk 툴체인 버전을 사용자 지정하여 문제를 해결할 수 있습니다. 예를 들어, 다운로드 ndk18 또는 ndk16과 같이 ndk 경로를 사용자의 AS로 설정합니다(File->Project Structure->SDK Location->Android NDK Location).
SDK 도구에서 NDK를 모두 삭제합니다.
언급URL : https://stackoverflow.com/questions/35128229/error-no-toolchains-found-in-the-ndk-toolchains-folder-for-abi-with-prefix-llv
'programing' 카테고리의 다른 글
IIS에서 웹 사이트를 시작할 수 없음 - W3SVC 실행 중 (0) | 2023.08.29 |
---|---|
MySQL Workbench - EER 다이어그램 동기화 방법 (0) | 2023.08.29 |
중첩 예외는 java.dll입니다.잘못된 인수예외:관리되지 않는 유형: 클래스 (0) | 2023.08.29 |
기본 및 특정 요청 시간 초과 (0) | 2023.08.29 |
Android SQLite에서 Maria로 여러 데이터 동기화DB (0) | 2023.08.29 |