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
}
そしてこれがapp
プロジェクトのbuild.gradle
です:
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 toolchainsフォルダにツールチェーンが見つかりません
または
プレフィックスがmipsel-linux-AndroidのABIのNDK toolchainsフォルダにツールチェーンが見つかりません
最新のNDKはmips
abiのサポートを削除し、それ以前のバージョンのAndroid gradleプラグインはまだmipsツールチェーンの存在を確認しています。 詳細はここを見てください 。
解決策 :Android gradleプラグインを3.1以降にアップグレードしてください。
例えばプロジェクトレベルのグラドルに以下を追加してください[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
この種の問題を解決するには、 3つのオプション のこのスレッドをチェックしてください
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ツールでNDKをアンインストールすることによってこのエラーを修正しました。そのため、NDKが不要な場合は、アンインストールします。
私のWindows 8マシンで2.0から2.1にAndroidスタジオをアップデートしている間、私は同じ問題に直面しました。
私はそのための解決策を見つけました。次のステップを使ってください。
これはAndroid Studioが安定版チャンネルでフルNDKアップデートを受け取らないために起こっています。プロジェクト開発にNDKを使用していない場合は、SDKディレクトリからNDKフォルダを削除するだけで済みます。
エラーメッセージ:「ABKのNDK toolchainsフォルダにプレフィックスがllvmのツールチェーンは見つかりませんでした」。
NDKを使用してAndroid Studioを新しくWebインストールした後、GitHubからNDKを使用するAndroidコードサンプルをインポートし、それをコンパイルしようとしました。
その結果、エラーが発生しました。
プレフィックスがllvmのABIのNDK toolchainsフォルダにツールチェーンが見つかりません
解決策: 何らかの理由でmacOSへの標準インストールプロセスが完全なセットをインストールできなかった。
~/Library/Android/sdk/ndk-bundle
はすべてのツールでフォルダtoolchains
を見逃していました、
(これは次のようになります:~/Library/Android/sdk/ndk-bundle/toolchains
)
解決策は、NDKを個別にダウンロードして開き、フォルダtoolchain
をコピーしてフォルダに貼り付けることです。
~/Library/Android/sdk/ndk-bundle
その後それは私のためにうまくいった。
ステップバイステップ:
1) 古い _ ndk _ versionsでページを開く:
https://developer.Android.com/ndk/downloads/older_releases
2) 規約に同意する
3) NDK
の古いバージョンをダウンロードします(例えば16b):
4) toolchains
ディレクトリを開きます。
5) ダウンロードしたZipファイルのtoolchains
フォルダから必要なファイルをtoolchains
フォルダに転送します。
6) プロジェクトを再ビルドする:
2018年9月30日UPD:
私は自分の場合この問題を解決するためにAndroid NDK Revision r16bを使用しました。だから私はこのバージョンで例を紹介します。
しかし、Android NDKのRevision r17c(2018年6月)を使うのが良いでしょう。それは最後のもので、ミップをサポートしています(週末のコメントからの合理的なお勧め)。
何もダウンロード、コピー、シンボリックリンクせずに、古いバージョンの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マネージャに移動します([ツール] - > [Android] - > [SDKマネージャ])。 NDKがインストールされている場合チェックボックスをオフにして[OK]をクリックするだけです。インストールされたコンポーネントは削除されます。
私の場合、このエラーは新しい/を作成するときに発生しました Android Studio(Android studio 3.2.1) Java Project with
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バンドルにAndroidスタジオ抽出を抽出または使用することができます。
[ 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バージョンではmipsが非推奨になっているためです。Gradleバージョン3.1.2にはmipsに対する強制はありません。これらの見つからないフォルダが存在することを前提としています。
Android Studioを開き、[ツール]、[Android]、[SDK]の順に選択し、必要でなければ[NDK]のチェックを外して、Android Studioを再起動します。
プロジェクトレベルのGradleファイルで、依存関係クラスパスのバージョンを低いものから高いものへと上げます。
dependencies {
classpath 'com.Android.tools.build:gradle:3.0.0'
}
のように変わる
dependencies {
classpath 'com.Android.tools.build:gradle:3.2.1'
}
build.gradle
(Project:ProjectName)の両方のリポジトリにgoogle()
依存関係を追加することで解決しました。次にプロジェクトを同期します
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バージョンr9dを使いたかったのです。
local.properties
では、パスはndk.dir=C\:\\Android\\ndk\\Android-ndk-r9d
に設定されていましたが、問題が発生します。
プレフィックス:[toolchain-name]を持つABIのNDK toolchainsフォルダにツールチェーンが見つかりません
解決策は以下のとおりです。
sdk\ndk-bundle\toolchains
から\ndk\Android-ndk-r9d\toolchains
へコピーされたツールチェーンは使用されていないようですが、何らかの理由でそれらが存在する必要があります。
注:この答えはNo toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-Android
に固有のものと思われますが、ここでは次のリンクによってリンクされていました:
NDK r19bから:
more ~/Android/Sdk/ndk-bundle/CHANGELOG.md
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-Android
のようなエラーが表示された場合は、プロジェクトファイルを[use plugin version 3.1 or later]に更新してください。また、Android Studio 3.1以降にアップグレードする必要があります。私がやったようにそれを修正するには
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()が見つからない場合は追加してください
この質問はunInstall ndkで解決しました
Android Studio 3.2.1の場合
Gradleのバージョン 4.6
Androidプラグイン版 3.2.1
あなたが特別にgithubから以前のプロジェクトを複製しているとき、問題は大部分来ます。できることは
クラスパス 'com.Android.tools.build:gradle:3.2.1'
プロジェクトレベルで.
それから、 compileSdkVersion を除いて、すべてのコンパイルのインスタンスを実装で変更してください。それはあなたのアプリケーションレベルの問題であるのでそのままにしてください。
今すぐ同期 の代わりに プロジェクトを作成(Ctrl + F9)
必要に応じてGoogle Mavenリポジトリを追加してください。
必要に応じてグラドルラッパーをアップグレードしてください。
(Android Studio IDEは、手順4と5で同じように質問します。)
それは修正します!コーディングを楽しむ
簡単な解決策は、ダウンロードして、mips64el-linux-Android-4.9およびmipsel-linux-Android-4.9フォルダーを含む「Android-sdk\ndk-bundle\toolchains」内のtoolchainsフォルダーに解凍することです。
これが修正です。
Androidスタジオでプロジェクトをコンパイルするとき、私は時々遭遇します:
エラー:プレフィックス:arm-linux-androideabi/llvmの付いたABIのNDK toolchainsフォルダにツールチェーンが見つかりません
これは、関連コンポーネントを更新したことが原因である可能性があります。解決策はAndroidスタジオです([ツール] - > [Android] - > [SDKマネージャ])。 ndk項目を選択して削除してください。プログラムがそれを必要とする場合、あなたはそれを再インストールすることができます。これにより、フォルダの場所が正しくなり、そのような問題は発生しなくなります。
あなたがndkの関連SDKをダウンロードするなら、あなた自身のローカルなAndroid-SDKを見つけてください、 "ndk-bundle"と呼ばれるフォルダーがあるでしょう
中に "toolchains"というフォルダがあります。
内部にmips64el関連ファイルがないことに気づきました。
解決策は次のとおりです。
ここをクリックして ブラウザを介してNDKパッケージを個別にダウンロードします。解凍した後、 "toolchains"フォルダを開き、Android-sdk-> ndk-bundle-> toolchainsフォルダと比較して、見つからないフォルダを見つけ、過去のファイルをコピーします。3.再コンパイルし、問題は解決します。それはあなたが仲間を助けることを願っています
私にとっては、私はAndroid StudioからAndroid NDKをインストールする際に問題があるかもしれないと思います。これを以下の方法で解決することができました
からAndroid ndkをダウンロードしました
https://developer.Android.com/ndk/downloads/index.html
そしてndk-bundle(あなたのAndroid SDKがインストールされている場所)の中に置かれます。詳細については、この画面を確認してください。
同じ問題に直面しています。
私は以下の方法で成功しました。
Buldle.gradleファイルを開き、両方のクラスパスをたどるためのバージョンをアップグレードします。
classpath 'com.Android.tools.build:gradle:3.2.1' classpath 'com.google.gms:google-services:4.2.0'
それから同期して、同様に更新Gradleバージョンのための1つのdilaogを得てからそのリンクをクリックして、すべての必要な更新をダウンロードするのを待ってください(利用できるインターネットを望みます)。長い時間をかけて、成功しました。
まず、ndkのバージョンを更新してみてください https://developer.Android.com/ndk/downloads/ /
それでもうまくいかない場合は、次の方法を試してください。
フォルダを作成します
Sdk\ndk-bundle\toolchainsフォルダに移動します(私の場合はC:\ Users\USER\AppData\Local\Android\Sdk\ndk-bundle\toolchainsです。ファイル - >プロジェクト構造 - > SDKの下にあります)。あなたのAndroidのスタジオ内の場所)とエラーのために不足しているとして表示されている名前でフォルダを作成します。
Gradle同期に失敗しました:プレフィックス:mipsel-linux-Androidを持つABIのNDK toolchainsフォルダーにツールチェーンが見つかりませんでした
次に、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)その中の prebuilt フォルダーを、最後のステップで作成したフォルダーにコピーします。
もう一度プロジェクトを実行するとうまくいきます
それが役に立てば幸い!!
NDKを使用しない場合は、環境変数Android_NDK_HOME
の設定を解除してください。
あなたはイオン3を使用している場合AndroidのスタジオのSDKツールからndkを削除します。
リンクファイルは私には良くありません。
ln -s aarch64-linux-Android-4.9 mips64el-linux-Android
ln -s arm-linux-androideabi-4.9 mipsel-linux-Android
別のエラーがあるためです。
* What went wrong:
A problem occurred configuring project ':Test'.
> Expected caller to ensure valid ABI: MIPS
Graldeでビルドする場合、これをdefaultConfigに追加します
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
Ndk-buildコマンドを使用する場合、これをApplication.mkに追加します。
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
Androidスタジオを最新バージョンにアップグレードするだけ>>プロジェクトに応じてコンテンツをダウンロードするためにインターネットに接続します。
ハッピーコーディング..
Android/gradle/gradle-wrapper.propertiesを開き、この行を変更します。distributionUrl =
https\://services.gradle.org/distributions/gradle-4.1-all.Zip
この行に:
distributionUrl =
https\://services.gradle.org/distributions/gradle-4.4-all.Zip
Android/build.gradleを開き、次の行を変更してください。
classpath 'com.Android.tools.build:gradle:3.0.1'
これに:
classpath 'com.Android.tools.build:gradle:3.1.2'
この質問の私の限られた経験では、私はフォローメソッドを使用して問題を解決しようとします:
1.Stay Android gradleバージョンと同じビルドツールバージョン。例:ビルドツールのバージョンが3.3.0の場合、gradleのバージョンは4.10.1である必要があります。リンクで参照できます https://developer.Android.com/studio/releases/gradle- plugin そしてASでビルドツールとgradleバージョンを整理します(ファイル->プロジェクト構造->プロジェクト)
2.method1が機能しない場合は、ndkツールチェーンバージョンをカスタマイズして問題を解決することができます:ndk18またはndk16のダウンロードなど、ndkパスの設定はASです(ファイル->プロジェクト構造-> SDKロケーション-> Android NDKロケーション)
Gradleプラグインをアップグレードします
com.Android.tools.build:gradle:3.1.4
グレードアップwraperpropetiesをアップグレード
distributionUrl = https://services.gradle.org/distributions/gradle-4.4-all.Zip
私はlocal.propertiesにナビゲートし、そこに
ndk.dir=/yo/path/for/NDK
行はあなたのndkがある場所に更新する必要があります。
私はCrystax NDKを使用していましたが、オリジナルのAndroid NDKがまだ使用されていることに気づきませんでした。
NDKを追加中に同じエラーがあります。私は多くのことを試みました、そして、後で私は私のために完璧に働く解決策の下に見つける。
プロジェクトにNDKを追加したい場合は、以下の手順に従ってください。 1. SDK Managerを使用してNDKをインストールした場合は、まずアンインストールします。 (SDKツールのチェックを外して適用)2.公式サイトからNDKを手動でダウンロードします。 (任意のバージョン)プロジェクトが古い場合はバージョン17を優先します。3.そのファイルを解凍します。 4.プロジェクト構造> NDKパス>抽出ファイルパスをここに追加します。 5.プロジェクトをビルドします。そしてその仕事。
プロジェクト評価版の更新
classpath 'com.Android.tools.build:gradle:3.2.1'
アプリのグレードを更新する:implementation 'com.Android.support:appcompat-v7:28.0.0' implementation 'com.Android.support:design:28.0.0'
次のように問題を解決するために私が従ったステップ、
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の指定を削除することでした。
Android Studio→設定→システム設定→Android SDK→SDKツール→NDKの選択解除→適用ボタン。
その後、ProjectとGradleは問題なくコンパイルされ、プロジェクトの作業を進めることができました。
なぜこれが起こっているのかはわかりませんが、NDKの詳細についてはチェックアウトしてください:
NDKを再インストールして問題を解決しました。