programing

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

new-time 2020. 5. 12. 21:37
반응형

오류 : 접두사가 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.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 toolchains 폴더에 툴체인이 없습니다.

최신 NDK는

mips

abi에 대한 지원을 제거 했으며 이전 버전의 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_64

darwin-x86_64

위의 명령이다. Windows에서는을 사용하십시오

windows-x86_64

.


NDK가 필요 없어서 제거했습니다. Android 스튜디오의 SDK 관리자 (도구-> Android-> SDK 관리자)로 이동하십시오. NDK가 설치된 경우. 상자를 선택 해제하고 확인을 클릭하십시오. 설치된 구성 요소가 삭제됩니다.


필자의 경우이 오류는 새로운

Android Studio (Android studio 3.2.1)

Java 프로젝트를 만들 때 발생했습니다.

    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/

) 등 버전을 사용하는 것이 좋습니다. 안드로이드 스튜디오 추출을 추출하거나 사용하여 기본적으로 ndk-bundle을 사용할 수 있습니다.


Android Studio를 열고 도구로 이동 한 다음 Android 및 SDK로 이동하여 NDK를 선택 취소하십시오 (필요하지 않은 경우) .Android Studio를 다시 시작하십시오.


[

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android][1]

이 예제를 시도하고 최신 NDK 관련 문제에 직면 한 사람들에게 적합합니다. 이 솔루션을 따를 수 있습니다. build.gradle에서 이것을 변경하십시오.

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

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

그 이유는 최신 ndk 버전에서 밉이 더 이상 사용되지 않기 때문에 Gradle 버전 3.1.2는 밉에 대한 강제가 없습니다. 이러한 누락 된 폴더가 존재한다고 가정합니다.


프로젝트 레벨에서 Gradle 파일은 다음과 같이 종속성 클래스 경로 버전을 낮거나 높입니다.

dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
    }

처럼 변경

dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
    }

(프로젝트 : ProjectName)의

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()
    }
}

간단한 솔루션은 mips64el-linux-android-4.9 및 mipsel-linux-android-4.9 폴더가 포함 된 다음 파일을 SDK "android-sdk \ ndk-bundle \ toolchains"내의 툴체인 폴더로 다운로드하여 압축을 풉니 다.

이 파일을 다운 로딩하여 툴체인 폴더에 추가


비슷한 문제가 있었지만 프로젝트 요구 사항으로 인해 NDK 버전 r9d를 사용하고 싶었습니다.에서

local.properties

경로로 설정

ndk.dir=C\:\\Android\\ndk\\android-ndk-r9d

하지만 문제가 발생할 것을 :

NDK toolchains 폴더에 접두사가있는 ABI의 툴체인이 없습니다 : [toolchain-name]

해결책은 다음과 같습니다.

  1. SDK 관리자를 사용하여 최신 NDK 설치
  2. 누락 된 툴체인 [toolchain-name]을 새 ndk에서 기존 ndk로 복사하십시오. 내 경우에는 sdk\ndk-bundle\toolchains~\ndk\android-ndk-r9d\toolchains
  3. 필요한 모든 툴체인이있을 때까지 프로세스를 반복하십시오.

복사 된 툴 체인은 사용되지 않지만 어떤 이유로 든 거기에 있어야합니다.


설치되지 않은 ndk 로이 질문을 해결했습니다. 필요하지 않기 때문입니다.


여기 수정이 있습니다.안드로이드 스튜디오에서 프로젝트를 컴파일 할 때 가끔 다음과 같은 상황이 발생합니다.

오류 : arm-linux-androideabi / llvm 접두사가있는 ABI의 NDK 툴체인 폴더에 툴체인이 없습니다.

관련 구성 요소를 업데이트하면 발생할 수 있습니다. 해결책은 Android 스튜디오 (도구-> Android-> SDK 관리자)입니다. ndk 항목을 선택하고 삭제하십시오. 프로그램에 필요한 경우 다시 설치할 수 있습니다. 이렇게하면 폴더 위치가 올 바르고 문제가 발생하지 않습니다.


내가했던 것처럼 그것을 고치기 위해Android Studio 파일> 프로젝트 구조 및 프로젝트로 이동Gradle 버전을 4.6으로, Android 플러그인 버전을 3.2.1로 변경

스크린 샷 확인

이 오류 "aapt2-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"및 "allprojects"모두에서 변경하십시오.

스크린 샷 확인

google ()을 찾지 못하면 추가하십시오.


Android Studio 3.2.1의 경우 Gradle 버전

4.6

안드로이드 플러그인 버전

3.2.1


이 문제는 주로 github에서 이전 프로젝트를 복제 할 때 발생합니다. 당신이 할 수있는 것은

  1. 클래스 경로를

클래스 경로 'com.android.tools.build:gradle:3.2.1'

프로젝트 레벨 gradle에서.

  1. 그런 다음

    compileSdkVersion을

    제외하고 구현으로 컴파일의 모든 인스턴스를 변경하십시오 . 앱 레벨 gradle에 그대로 유지하십시오.
  2. 동기화

    대신 이제 프로젝트 만들기 (Ctrl + F9)를 클릭하십시오.
  3. 필요한 경우 Google Maven 리포지토리를 추가하십시오.
  4. 필요한 경우 gradle wrapper를 업그레이드하십시오.

(Android Studio IDE는 4 단계와 5 단계에서 동일하게 요청 / 안내합니다)해결 !! 코딩 즐기기


참고 :이 답변은 다음과 같은 것으로 보이지만 다음 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android과 같이 링크되어 있습니다.

* https://stackoverflow.com/questions/52193274/no-toolchains-found-in-the-ndk-toolchains-folder-for-abi-with-prefix-mips64el-l

NDK r19b에서 :

more ~/Android/Sdk/ndk-bundle/CHANGELOG.md
  • 이 NDK 버전은 Android Gradle 플러그인 버전 3.0 이상과 호환되지 않습니다. 과 같은 오류가 표시되면 No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android프로젝트 파일을 [플러그인 버전 3.1 이상 사용]으로 업데이트하십시오. 또한 Android Studio 3.1 이상으로 업그레이드해야합니다.

NDK를 사용하지 않는 경우 환경 변수를 설정 해제하십시오

ANDROID_NDK_HOME

.


나를 위해 안드로이드 스튜디오에서 안드로이드 NDK를 설치하는 데 약간의 문제가 있다고 생각합니다. 나는 다음과 같은 방법으로 이것을 해결할 수있었습니다.Android NDK에서 다운로드

https://developer.android.com/ndk/downloads/index.html

ndk-bundle (안드로이드 SDK가 설치된 위치) 안에 배치됩니다. 자세한 내용은이 화면을 확인하십시오.

https://app.box.com/s/dfi4h9k7v4h0tmbu3z9qnqx3d12fdejn


Ionic 3을 사용하는 경우 android studio sdk 도구에서 ndk를 제거하십시오.


자신의 로컬 안드로이드 SDK를 찾으십시오. ndk의 관련 SDK를 다운로드하면 "ndk-bundle"이라는 폴더가 있습니다.

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

안에 "툴체인"이라는 폴더가 있습니다.

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

내부에 mips64el 관련 파일이 없습니다.

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

해결책은 다음과 같습니다.

브라우저를 통해 NDK 패키지를 별도로 다운로드 하려면 여기클릭하십시오 . 압축을 푼 후 "toolchains"폴더를 열고 android-sdk-> ndk-bundle-> toolchains 폴더와 비교하고 누락 된 폴더를 찾은 다음 과거 3을 복사하십시오. 다시 컴파일하면 문제가 해결됩니다. 그것이 당신이 짝짓기를 돕는 희망


같은 문제에 직면.나는 방법에 따라 성공했다.buldle.gradle 파일을 열고 두 클래스 경로를 따르도록 버전을 업그레이드하십시오. 클래스 경로 'com.android.tools.build:gradle:3.2.1'클래스 경로 'com.google.gms : google-services : 4.2.0'그런 다음 동기화하고 업데이트 Gradle 버전에 대한 하나의 딜라 오를 얻은 다음 해당 링크를 클릭하고 필요한 모든 업데이트 다운로드를 기다립니다 (인터넷 사용 가능). 오랜 시간이 걸리면 성공했습니다.


먼저, ndk 버전 https://developer.android.com/ndk/downloads/를 업데이트

하십시오

그래도 작동하지 않으면 다음을 시도해보십시오.

  • 폴더 만들기

    Sdk \ ndk-bundle \ toolchains 폴더 (내 경우에는 C : \ Users \ USER \ AppData \ Local \ Android \ Sdk \ ndk-bundle \ toolchains로 이동하십시오. 파일-> 프로젝트 구조-> SDK에서 찾을 수 있습니다. 예 : 오류가있는 경우 오류에서 누락 된 것으로 표시된 이름의 폴더를 만듭니다. Gradle 동기화 실패 : 접두사가있는 ABI의 NDK 도구 체인 폴더에 도구 체인이 없습니다 : mipsel-linux-android
  • 그런 다음 이름이 mipsel-linux-android 인 폴더를 만듭니다.
  • 컨텐츠 포함

    Sdk \ ndk-bundle \ toolchains 폴더로 다시 이동하여 이미있는 폴더를여십시오. 예를 들면 다음과 같습니다. Sdk \ ndk-bundle \ toolchains \ aarch64-linux-android-4.9 (내 경우 C : \ Users \ USER \ AppData \ Local \ Android \ Sdk \ ndk-bundle \ toolchains \ aarch64-linux-android-4.9)

    미리 작성된

    폴더를 마지막 단계에서 만든 폴더로 복사
  • 프로젝트를 다시 실행하면 작동합니다.

그것이 도움이되기를 바랍니다!


다음과 같이 문제를 해결하기 위해 수행 한 단계

Analyze -> Code Cleanup

File -> Project Structures -> Select project from the list and update the gradle version to latest.

Build -> Clean Project

Build -> Make Project

이제 빌드와 관련된 문제가 구현 대신 컴파일을 사용하는 것처럼보고 될 수 있습니다.문제를 해결하고 문제를 해결해야합니다.


NDK를 다시 설치하여 문제를 해결했습니다.참고 :

https://stackoverflow.com/questions/35128229/error-no-toolchains-found-in-the-ndk-toolchains-folder-for-abi-with-prefix-llv

반응형