エラー:接頭辞がllvmのABIのNDKツールチェーンフォルダーにツールチェーンが見つかりません


207

gradel(gradlew clean build)を使用してオープンソースのAndroidプロジェクト(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ます。他に言及する必要があるかどうかはわかりません。情報が必要な場合はコメントしてください。


Gradleツールを更新してみてください。classpath 'com.android.tools.build:gradle:3.2.0-beta05'
Photon Point

developer.android.com/ndk/downloads/older_releasesおよびAndroid NDK、リビジョン16b(2017年12月)バージョンを使用して、必要なフォルダーをダウンロードし、問題を修正します。
Panache

回答:


376

2年が経過しました。ここで遭遇した場合、次のようなエラーメッセージが表示される可能性があります。

接頭辞mips64el-linux-androidが付いたABIのNDKツールチェーンフォルダーにツールチェーンが見つかりません

または

接頭辞mipsel-linux-androidが付いたABIのNDKツールチェーンフォルダにツールチェーンが見つかりません

最新のNDKはmipsabiのサポートを削除しました。以前のバージョンのandroid gradleプラグインは、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

この種の問題を解決するには、この3つのオプションのスレッドを確認してください


6
Gradle 4.1で試してみましたが、機能しませんでしたが、回避策(mipsel-linux-android-dummyフォルダーの作成)は機能しました。@lazybugに感謝します。

2
@GirishがAndroid Gradleプラグインを最上位のbuild.gradleファイルにアップグレードします。Gradleバージョンcom.android.tools.build:gradle:3.2.0-rc02ではなく、のようなものです
パニックしない

4
回避策は、ここに述べた正しいものである: # 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
Avijeet Duttaさん

16
Windowsの場合: mklink /d mips64el-linux-android aarch64-linux-android-4.9そしてmklink /d mipsel-linux-android arm-linux-androideabi-4.9私のためにも働いた。
ミッチ

「Macで」の回避策は正常に機能します(〜/ライブラリ部分を調整)。しかし、NDKの次の更新(2018年10月14日)では、mips *ツリーに予期しないファイルがたくさん見つかりました。驚かない。そこで、シンボリックリンクを再度削除しました。
Quigi、

66

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

ハッピーコーディング-:)


1
これが本当の解決策です
マーティン


55

SDK-ToolsでNDKをアンインストールして、このエラーを修正しました。したがって、NDKが必要ない場合は、アンインストールしてください。


7
NDKが必要な場合はどうなりますか?
IgorGanapolsky

ここでもNDKが必要な場合の解決策は何ですか?
Brijesh Joshi

NDKをアンインストールした場合は修正されますが、NDKを使用する必要がある場合は、このstackoverflow.com/a/51589406/6533853
Ninja

アンインストールするには、このstackoverflow.com/a/52207450/2768515
Chetan

35

私の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. Android Studioを再起動します。

これは、Androidスタジオが安定したチャネルで完全なNDKアップデートを取得しないためです。プロジェクト開発にNDKを使用していない場合は、NDKフォルダーをSDKディレクトリから削除できます。


1
Android Studio 3.2で動作します!
maxwellnewage 2018年

1
これError : Android MIPS ToolChain directory "" does not existは、MacのGame Maker Studio 2のエラー " " を修正する場合にも役立ちました。しかし、ここからNDKのバージョン17cを取得する必要がありました:developer.android.com/ndk/downloads/older_releases (per:reddit.com/r/gamemaker/comments/9m958a/…)ありがとう@nithinjith!...それでもしかし建物ではない、必要性を解決するために:Android NDK: Please fix the APP_ABI definition in /Users/../Library/Android/sdk/ndk-bundle/build/core/default-application.mk
クリス

33

エラーメッセージ:「プレフィックス:llvmのABIのNDKツールチェーンフォルダーにツールチェーンが見つかりません。」

NDKを備えたAndroid Studioを新しくWebインストールした後、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

その後はうまくいきました。


私の場合はありますが、プレフィックスaarch64-linux-androidが付いたファイルはありません。なにか提案を !!
CoDe 2017

フォルダー 'mips64el-linux-android-4.9'と 'mipsel-linux-android-4.9'はndkバンドル16以降では使用できないため、これら2つのフォルダーをダウンロードしてツールチェーンフォルダー内のandroid sdkバンドルに追加する必要があるため、問題は解決しましたなぜこのエラーが理解できませんでしたか?
Fazal 2018年


22

ステップバイステップ:

1)古いNDKバージョンでページを開きます。

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

ここに画像の説明を入力してください

2)規約に同意します。

ここに画像の説明を入力してください

3)の古いバージョンNDK(16bなど)をダウンロードします。

ここに画像の説明を入力してください

4)toolchainsディレクトリを開きます。

5)toolchainsダウンロードしたzipファイルのフォルダーからフォルダーに必要なファイルを転送しtoolchainsます。

ここに画像の説明を入力してください

6)プロジェクトを再構築します。

ここに画像の説明を入力してください


UPD 2018年9月30日:
私は自分のケースでこのエラーを修正するためにAndroid NDKリビジョンr16bを使用しました。そこで、このバージョンの例を紹介します。
ただし、Android NDK、リビジョンr17c(2018年6月)を使用することをお勧めします。ミップをサポートする最後の1つです(週末のコメントからの妥当な推奨)。


の代わりに(for example 16b)、mipsをサポートする最後のNDKバージョンを明確にすることをお勧めします。Android NDKリビジョンr17c(2018年6月)のリリースノート経由:ARMv5(armeabi)、MIPS、およびMIPS64のサポートが削除されました。これらのABIのいずれかをビルドしようとすると、エラーが発生します。それは16b正確です。
週末

@週末あなたの推薦をありがとう。回答に追加しました。
V.March

1
@vmarch申し訳ありませんが、それは16b正確です。r17cは、MIPSのサポートを削除した最初のバージョンです:)
週末

1
@ああ、私はあなたの前のコメントをとてもすぐに読みました。だから私は要点を逃した。すみません!ただし、これらのファイルはAndroid NDK、リビジョンr17c(2018年6月)にまだ存在しています。そして、バージョン18では、最終的に削除されました。アーカイブを調べてください。developer.android.com/ndk/downloads/...
V.March

@vmarchよくやった!私はr17cアーカイブをチェックせず、リリースノートから以前の結論を推測しただけです。
週末の

17

何もダウンロード、コピー、シンボリックリンクせずに、古いバージョンのAndroid Gradleプラグインが削除されたmipsツールチェーンを期待する空のディレクトリを作成するだけで、エラーを「修正」できました。

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

明らかに、$ANDROID_HOMEここでAndroid SDKインストールのルートを指します。あなたはMacOSのを使用している場合は、交換するlinux-x86_64darwin-x86_64上記のコマンドインチ Windowsではを使用しますwindows-x86_64


魅力のように働いた。
Akbar Sha Ebrahim 2018年

プロジェクトの参照先によって異なります。私にはうまくいきませんでしたが、一部の人にとっては素晴らしく単純なトリックです。エラーを取り除くために、実際のツールチェーンをコピーする必要がありました。
Martin Zaske、

11

NDKは必要なくなったのでアンインストールしました。AndroidスタジオのSDKマネージャーに移動します([ツール]-> [Android]-> [SDKマネージャー])。NDKがインストールされている場合。チェックボックスをオフにして[OK]をクリックします。インストールされたコンポーネントは削除されます。


8

私の場合、このエラーは、新しい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は文句を言わない


これは古いgradleプラグインのバグだと思います。最新のものに更新してください。それは私に役立ちました(私の場合は3.0から3.2.0-beta05まで)
AnoDest

ダウングレードされずにアップグレードされたと思います... P
Shylendra Madda

7

Android NDK 18.0 *には、抽出後にフォルダーにすべてのファイルが作成されない問題があるようです。そのため、ndkビルドを使用するアプリのコンパイルは失敗します。

NDK 17.1 *(https://developer.android.com/ndk/downloads/)などのバージョンを使用することをお勧めします。デフォルトでndk-bundleにandroid studio抽出を抽出または使用できます。


5

[ 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では、ミップを強制することはありません。これらの不足しているフォルダーの存在を前提としています。


4

Android Studioを開き、[ツール]、[Android]、[SDK]の順に移動し、NDKをオフにします。必要がない場合は、Android Studioを再起動します。


3

プロジェクトレベルのGradleファイルで、依存関係のクラスパスバージョンを低から高に増やします

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

のように変わる

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

3

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


2

同様の問題がありましたが、プロジェクトの要件により、NDKバージョンr9dを使用したいと思いました。

local.propertiesパスに設定したndk.dir=C\:\\Android\\ndk\\android-ndk-r9dが、問題へのリード:

接頭辞が付いたABIのNDKツールチェーンフォルダーにツールチェーンが見つかりません:[ツールチェーン名]

解決策は:

  1. SDKマネージャーを使用して最新のNDKをインストールする
  2. 欠落しているtoolchain [toolchain-name]を新しいndkから古いndkにコピーします。私の場合sdk\ndk-bundle\toolchains\ndk\android-ndk-r9d\toolchains
  3. 必要なツールチェーンがすべて揃うまでこのプロセスを繰り返します

コピーされたツールチェーンは使用されていないように見えますが、何らかの理由でそこに存在する必要があります。


2

私はそれを必要としないので、私はアンインストールされたndkによってこの質問を解決しました


2

これが修正です。

Android Studioでプロジェクトをコンパイルするとき、時々遭遇します:

エラー:プレフィックスが付いたABIのNDKツールチェーンフォルダーにツールチェーンが見つかりません:arm-linux-androideabi / llvm

これは、関連コンポーネントの更新が原因である可能性があります。解決策はAndroidスタジオ(ツール-> Android-> SDKマネージャー)です。ndkアイテムを選択して削除します。プログラムで必要な場合は、再インストールできます。これにより、フォルダーの場所が正しく、そのような問題は発生しなくなります。


2

私がしたようにそれを修正するには

Android Studio File>プロジェクト構造とプロジェクトに移動

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()が見つからなかった場合は追加してください


2

Android Studio 3.2.1の場合は、

Gradleバージョン4.6

Androidプラグインバージョン3.2.1


2

この問題は主に、前のプロジェクトをgithubから特別に複製するときに発生します。あなたにできることは

  1. クラスパスを

クラスパス 'com.android.tools.build:gradle:3.2.1'

あなたのプロジェクトレベルのgradleで。

  1. 次に、compileSdkVersionを除いて、実装でコンパイルのすべてのインスタンスを変更し、アプリレベルのグラドルのままにします。

  2. 同期する代わりに、プロジェクトの作成(Ctrl + F9)をクリックします。

  3. 必要に応じて、Google Mavenリポジトリを追加します。

  4. 必要に応じて、gradle wrapperをアップグレードします。

(Android Studio IDEはステップ4と5について同じことを尋ね/案内します)

修正します!! コーディングを楽しむ


2

注:この回答はに固有のようですがNo toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android、ここからリンクされています:

* /programming/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以降にアップグレードする必要があります。


1

私にとっては、Android StudioからAndroid NDKをインストールする際に問題が発生する可能性があると思います。私は次の方法でこれを解決することができました

からAndroid NDKをダウンロードしました

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

ndk-bundle(android sdkがインストールされている場所)内に配置されます。詳細については、この画面を確認してください。

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


1

Ionic 3を使用している場合は、Android Studio SDKツールからNDKを削除します。


理想的ではありませんが、イオンAndroidプロジェクトを構築する特定の必要性のための一時的なソリューションとして素晴らしいです。
MFAL 2018年

1

自分のローカルandroid-SDKを見つけます。ndkの関連SDKをダウンロードすると、「ndk-bundle」というフォルダーがあります。

ここに画像の説明を入力してください

中には「toolchains」というフォルダがあります。

ここに画像の説明を入力してください

内部にmips64el関連のファイルがないことに気づきました。

ここに画像の説明を入力してください

解決策は次のとおりです。

ここをクリックして、ブラウザからNDKパッケージを個別にダウンロードします。解凍後、「toolchains」フォルダーを開き、android-sdk-> ndk-bundle-> toolchainsフォルダーと比較し、欠落しているフォルダーを見つけ、過去3をコピーします。再コンパイルすると、問題が解決します。それがあなたの仲間を助けることを願っています


1

同じ問題に直面しています。

私は次の方法で成功しました。

buldle.gradleファイルを開き、両方のクラスパスをたどるバージョンをアップグレードします

クラスパス 'com.android.tools.build:gradle:3.2.1'クラスパス 'com.google.gms:google-services:4.2.0'

次に、同期し、Gradleバージョンの更新用の1つのダイアログを取得した後、そのリンクをクリックして、必要なすべての更新がダウンロードされるのを待ちます(インターネットが利用可能であることを希望します)。長い時間をかけて、成功しました。


1

まず、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(mycase C:\ Users \ USER \ AppData \ Local \ Android \ Sdk \ ndk-bundle \ toolchains \ aarch64-linux-android-4.9)その中のビルド済みフォルダーを、前のステップで作成したフォルダーにコピーします

  • プロジェクトを再度実行すると、機能します

それが役に立てば幸い!!


1

この質問での私の限られた経験では、私はフォロー方法を使用して問題を解決しようとしています:

1. AndroidビルドツールのバージョンをGradleバージョンと同じにします。たとえば、ビルドツールのバージョンが3.3.0の場合、gradleのバージョンは4.10.1である必要があります。https://developer.android.com/studio/releases/gradle-pluginのリンクから参照できます。し、あなたをchagne AS内のビルドツールとGradleバージョン(ファイル->プロジェクト構造->プロジェクト)

2. method1が機能しない場合は、ndkツールチェーンのバージョンをカスタマイズして問題を解決できます:ダウンロードndk18またはndk16のように、ndkパスの設定はASです(ファイル->プロジェクト構造-> SDKの場所-> Android NDKの場所)


1

案内する C:\Users\lalit\AppData\Local\Android\Sdk\ndk-bundle\toolchainsます。

次に、フォルダ名aarch64-linux-android-4.9を見つけて、名前をmips64el-linux-androidます。

Androidアプリを再実行します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.