I want to compile an open source android project (Netguard) using gradel (gradlew clean build
) But I encountered this Error:
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
I serached but didn't find enything helping. Here is the main 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
}
And here is the build.gradle
of the app
project:
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.+'
}
And I'm using gradle-2.9-all
and android-ndk-r10e
. I don't know if I should mention anything else, so comment if you need any information.
This question is related to
android
android-ndk
android-gradle-plugin
NOTE: This answer seems to be specific to: No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
, but it was linked here by:
From NDK r19b:
more ~/Android/Sdk/ndk-bundle/CHANGELOG.md
No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
,
update your project file to [use plugin version 3.1 or newer]. You will also
need to upgrade to Android Studio 3.1 or newer.Error message: “No toolchains found in the NDK toolchains folder for ABI with prefix: llvm” .
After fresh web installation of Android Studio with NDK, I imported an Android code sample that used NDK from GitHub and tried to compile it.
As a result had an Error:
No toolchains found in the NDK toolchains folder for ABI with prefix: llvm
Solution: for some reasons standard installation process on macOS had failed to install a complete set:
~/Library/Android/sdk/ndk-bundle
had missed folder toolchains
with all tools,
(it should be like this: ~/Library/Android/sdk/ndk-bundle/toolchains
)
The solution was to download NDK separately, open it, copy folder toolchain
and paste it to the folder:
~/Library/Android/sdk/ndk-bundle
After that it worked well for me.
Navigate to C:\Users\lalit\AppData\Local\Android\Sdk\ndk-bundle\toolchains
.
Now, find the folder name aarch64-linux-android-4.9
and rename it to mips64el-linux-android
.
Re-run the android app.
Upgrade your Gradle Plugin
classpath 'com.android.tools.build:gradle:3.2.1'
If you are now getting this error:
Could not find com.android.tools.build:gradle:3.2.1.
just add google() to your repositories, like this:
repositories {
google()
jcenter()
}
Happy Coding -:)
To fix it like i did
Android Studio File> project structure and go to project
change Gradle version to 4.6 & Android plugin version to 3.2.1
then clean project if you got this Error "Could not find aapt2-proto.jar"
go to build.gradle (project)
Try moving the google() method (.gradle file) to the top of its execution block the order of repositories it searches in that causes the issue.
for example, change this:
repositories {
maven { url 'https://maven.fabric.io/public' }
google() <=== from here
mavenCentral()
}
To this:
repositories {
google() <=== to here
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
}
Make those changes in both "buildscript" and "allprojects "
If you didn't find google() add it
If you don't use the NDK, unset the environment variable ANDROID_NDK_HOME
.
link file is not good for me.
ln -s aarch64-linux-android-4.9 mips64el-linux-android
ln -s arm-linux-androideabi-4.9 mipsel-linux-android
Because there is another error.
* What went wrong:
A problem occurred configuring project ':Test'.
> Expected caller to ensure valid ABI: MIPS
Add this in defaultConfig if you build with gralde
ndk {
abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
}
If you use ndk-build command, add this in Application.mk.
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
Without downloading, copying, or symlinking anything, I was able to "fix" the error by simply creating an empty directory where the older version of the Android Gradle plugin expects the removed mips toolchain:
mkdir -p $ANDROID_HOME/ndk-bundle/toolchains/mips64el-linux-android/prebuilt/linux-x86_64
Obviously, $ANDROID_HOME
points to the root of the Android SDK installation here. If you are using MacOS, replace linux-x86_64
with darwin-x86_64
in the command above. On Windows use windows-x86_64
.
Solved it by adding google()
dependency into both repositories in build.gradle
(Project: ProjectName). then sync your project
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()
}
}
Update project gradle version
classpath 'com.android.tools.build:gradle:3.2.1'
Update app gradle:implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
If you are using Ionic 3 Remove ndk from android studio sdk tools.
Step-by-step:
1) Open the page with old NDK versions:
https://developer.android.com/ndk/downloads/older_releases
2) Agree the Terms:
3) Download the older version of NDK
(for example 16b):
4) Open your toolchains
directory.
5) Transfer files that you need from toolchains
folder of downloaded zip-file to your toolchains
folder:
6) Rebuild the Project:
UPD 30 Sep 2018:
I used Android NDK Revision r16b for fix this error in my own case. So I present the example with this version.
But it's better to use the Android NDK, Revision r17c (June 2018). It is the last one, supporting mips (reasonable reccomendation from Weekend's comment).
Upgrade your Gradle Plugin
com.android.tools.build:gradle:3.1.4
Upgrade gradle wraperpropeties
distributionUrl=https://services.gradle.org/distributions/gradle-4.4-all.zip
For me I think there might be some issue in installing android NDK from android studio. I was able to resolve this in following manner
Downloaded android ndk from
https://developer.android.com/ndk/downloads/index.html
and placed inside ndk-bundle (where your android sdk is installed ). For more info check this screens.
After looking around, the solution was to remove the NDK designation from my preferences.
Android Studio ? Preferences ? System Settings ? Android SDK ? SDK Tools ? Unselect NDK ? Apply button.
Project and Gradle compiled fine after that and I was able to move on with my project work.
As far as why this is happening, I do not know but for more info on NDK check out:
In my limited experience with this question,I try to solve the problem use follow method:
1.Stay android build tools version the same with gradle version. For example:if you use the build tools version is 3.3.0,your gradle version must be 4.10.1.You can reference by the link https://developer.android.com/studio/releases/gradle-plugin and chagne your build tools & gradle version in your AS(File->Project Structure->Project)
2.If method1 don't work,you can custom your ndk toolchains version to solve the problem :like download ndk18 or ndk16 , setting the ndk path is your AS(File->Project Structure->SDK Location->Android NDK Location)
Android NDK 18.0* seems has an issue not creating all the files in folders after extraction. Due to it, your app compilation will fail which uses ndk builds.
Better is to use NDK 17.1* (https://developer.android.com/ndk/downloads/) etc version and you can extract or use the android studio extraction to ndk-bundle by default will work good.
After three days I figured it out:
The problem can be solved by downloading an older version of the NDK (14b) and going to Android Studio to File | Project Structure and selecting it.
I have same error while adding NDK. I tried much and later I find below solution which works perfectly for me.
if you want to add NDK in your project then follow below step. 1. If you installed NDK using SDK Manager then uninstall first. (untick from SDK tools and apply) 2. Download manually NDK from its official site. (any version) if project old then prefer version 17. 3. Extract that file. 4. Go to your project structure > NDK path > add Extracted file path here. 5. Build Project. and its work.
I have faced the same problem while update Android studio from 2.0 to 2.1 in my Windows 8 machine.
I found a solution for that.Please use the following steps.
This is happening because Android studio won't gets full NDK update in the stable channel. If you are not using NDK for your project development you can simply remove the NDK folder from your SDK directory.
Find your own local android-SDK, if you download the relevant SDK of ndk, there will be a folder called "ndk-bundle"
There is a folder called "toolchains" inside.
We noticed that there are no mips64el related files inside.
The solution is as follows:
Click here to download the NDK package separately through the browser. After unzipping, open the "toolchains" folder, compare it with the android-sdk->ndk-bundle->toolchains folder, find the missing folder, copy the past three. Recompile, the problem is solved.
I fixed the issue by reinstalling the NDK.
I've had a similar problem, but I wanted to use NDK version r9d due to project requirements.
In local.properties
the path was set to ndk.dir=C\:\\Android\\ndk\\android-ndk-r9d
but that lead to the problem:
No toolchains found in the NDK toolchains folder for ABI with prefix: [toolchain-name]
The solution was to:
sdk\ndk-bundle\toolchains
to \ndk\android-ndk-r9d\toolchains
It looks to me that the copied toolchains are not used, but for some reason it is needed to for them be there.
I navigated to local.properties, and in there the
ndk.dir=/yo/path/for/NDK
line needs to be updated to where your ndk lies.
I was using Crystax NDK, and didn't realize the original Android NDK was still in use.
I solved this question by unInstalled ndk, becasuse I dont't need it
just update classpath 'com.android.tools.build:gradle:X.X.X'
in Project Build.Gradle and replace X to the latest version do you have
Open android/gradle/gradle-wrapper.properties and change this line: distributionUrl=
https\://services.gradle.org/distributions/gradle-4.1-all.zip
to this line:
distributionUrl=
https\://services.gradle.org/distributions/gradle-4.4-all.zip
Open android/build.gradle and change this line:
classpath 'com.android.tools.build:gradle:3.0.1'
to this:
classpath 'com.android.tools.build:gradle:3.1.2'
I faced same issue and I resolved this by
changing gradle version of project-label .gradle file to Latest
classpath 'com.android.tools.build:gradle:3.2.1'
and add these checks on app label .gradle file
packagingOptions{
doNotStrip '*/mips/*.so'
doNotStrip '*/mips64/*.so'
}
Hope This will help.
Here is the fix.
When compiling a project in android studio, I occasionally encounter:
Error: No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi/llvm
This may be caused by updating related components. The solution is to Android studio ( Tools -> Android -> SDK Manager ) . Select the ndk item and delete it. If the program needs it, you can re-install it. This will ensure that the folder location is correct and there will be no such problem.
The simple solution is download and extract the following file which contains mips64el-linux-android-4.9 and mipsel-linux-android-4.9 folders,to your toolchains folder inside sdk "android-sdk\ndk-bundle\toolchains".
I uninstalled the NDK since I didn't need it . Go to SDK manager on Android studio ( Tools -> Android -> SDK Manager ) . If NDK is installed . Just uncheck the box and click OK . The installed components will be deleted .
In my case, this error occured when creating a new Android Studio (Android studio 3.2.1) Java Project with
classpath 'com.android.tools.build:gradle:2.0.0-beta6'
So I´ve downgraded to
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
Not the best solution stay at an older version, but maybe it´s just a temporary bug in the beta as the NDK path in local.properties is still the same, but the IDE doesn´t complain anymore
The issue comes mostly when you are cloning a previous project specially from github. What you can do is
classpath 'com.android.tools.build:gradle:3.2.1'
in your project level gradle.
Then Change all the instances of compile with implementation except compileSdkVersion keep it as it is in your app level gradle.
Instead of sync now click on make project(Ctrl+F9)
Add google maven repositories if needed.
Upgrade the gradle wrapper if needed.
(Android Studio IDE will ask / guide you with the same for steps 4 and 5)
it fixes!! Enjoy Coding
Two years has passed, now if you come across here, you may possibly encounterd error message like this:
No toolchains found in the NDK toolchains folder for ABI with prefix mips64el-linux-android
or
No toolchains found in the NDK toolchains folder for ABI with prefix mipsel-linux-android
Latest NDK removed support for mips
abi, and earler version of android gradle plugin still check for the existance of mips toolchain. see here for more info.
Solution: Upgrade android gradle plugin to 3.1 or newer.
e.g. Add following in the project level gradle [28-Sept-2018]
classpath "com.android.tools.build:gradle:3.2.0"
Workaround: Create mipsel-linux-android
folder structure to fool the tool. The easiest way would be to symbolic link to 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
Check this thread of three options for solving this kind of issue
For Android Studio 3.2.1 Update your
Gradle Version 4.6
Android plugin version 3.2.1
To continue with your older gradle version, we can use below solution:
Notice the file android-ndk-r17-beta2/toolchains/mips64el-linux-android- 4.9/prebuilt/darwin-x86_64/NOTICE-MIPS64. The content of the file is below.
This mips64el-linux-android-4.9 directory exists to make the NDK compatible with the Android SDK's Gradle plugin, version 3.0.1 and earlier, which expects the NDK to have a MIPS64 toolchain directory.
So, i can say, using Android SDK's Gradle plugin above 3.0.1, or create even a directory marked with 'mipsel' and 'mips64el', can both resolve the problem. The latter method is below.
cd "path-to-ndk"
OS_=$(uname -s | tr [A-Z] [a-z])
mkdir -p toolchains/mipsel-linux-android-4.9/prebuilt/${OS_}-x86_64
touch toolchains/mipsel-linux-android-4.9/prebuilt/${OS_}-x86_64/NOTICE-MIPS
mkdir -p toolchains/mips64el-linux-android-4.9/prebuilt/${OS_}-x86_64
touch toolchains/mips64el-linux-android-4.9/prebuilt/${OS_}-x86_64/NOTICE-MIPS64
Got the solutions from here
Just upgrade you android studio with latest version >> connect with the internet for download content according to your project.
Happy Coding..
Facing same issue.
I got success following ways.
Open your buldle.gradle file and upgrade the versions for following both classpath
classpath 'com.android.tools.build:gradle:3.2.1' classpath 'com.google.gms:google-services:4.2.0'
Then Sync and after get one dilaog for update Gradle version as well then click that link and wait for download all required updates(Hope internet available). After taking long time you got Success.
I fixed this Error by uninstalling the NDK in the SDK-Tools. So, if you don't need the NDK, uninstall it.
First, try updating the ndk version https://developer.android.com/ndk/downloads/
If that's not working then you can try the following:
Create a folder
Go to the Sdk\ndk-bundle\toolchains folder (in my case its C:\Users\USER\AppData\Local\Android\Sdk\ndk-bundle\toolchains; you can find yours under File->project structure->SDK location in you android studio) and create a folder with the name that's shown as missing in the error for eg: if the error is
Gradle sync failed: No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel-linux-android
Then create a folder with name mipsel-linux-android
Include content Go to the Sdk\ndk-bundle\toolchains folder again and open any folder that's already in it. For example:Sdk\ndk-bundle\toolchains\aarch64-linux-android-4.9 (in mycase C:\Users\USER\AppData\Local\Android\Sdk\ndk-bundle\toolchains\aarch64-linux-android-4.9) copy the prebuilt folder in it to the folder we created in the last step
Run the project again and it will work
Hope it helps!!
Uninstall the older version of SDK from IntellJ IDEA -> Appearance -> System Settings -> Android SDK -> SDK platforms.
Install the new Android SDK version whatever version you want.
While installing the new SDK, uncheck the NDK checkbox under SDK tools.
Open Android Studio, Go to Tools then Android and then SDK, uncheck NDK If you do not need this, and restart android studio.
In your project level Gradle file increase the dependencies classpath version low to high like
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
}
to change like
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
Steps I have followed to fix the issue as follows,
Analyze -> Code Cleanup
File -> Project Structures -> Select project from the list and update the gradle version to latest.
Build -> Clean Project
Build -> Make Project
Now the issue related to the build may get reported like using compile instead of implementation etc.
Please fix those and hopefully it should fix the issue.
[https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android][1]
For people trying out this example and facing issues with latest NDK. Can follow this solution. In build.gradle change this
classpath 'com.android.tools.build:gradle:3.0.1'
To
classpath 'com.android.tools.build:gradle:3.1.2'
The reason is mips are deprecated in the latest ndk versions, Gradle version 3.1.2 will not have a compulsion for mips. It assumes the presence for these missing folders.
Source: Stackoverflow.com