我想编译一个开源的android项目(Netguard)使用gradel (gradlew清洁构建)但我遇到了这个错误:

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
}

这是构造。应用项目的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。我不知道我是否应该提到其他东西,所以如果你需要任何信息,请评论。


当前回答

没有下载、复制或符号链接任何东西,我能够通过简单地创建一个空目录来“修复”错误,旧版本的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。

其他回答

在我的例子中,这个错误发生在创建一个新的Android Studio (Android Studio 3.2.1) Java项目时

类路径的com.android.tools.build: gradle: 2.0.0-beta6

所以我已经降级到

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

保留旧版本并不是最好的解决方案,但可能这只是测试版中NDK路径在本地的临时错误。属性仍然相同,但IDE不再抱怨

注意:这个答案似乎是特定的:在NDK toolchains文件夹中找不到ABI的工具链,前缀为: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或更老版本。如果你看到一个错误 在前缀为mips64el-linux-android的NDK toolchains文件夹中没有找到工具链, 将项目文件更新到[使用插件3.1或更新版本]。你也会 需要升级到androidstudio3.1或更新版本。

在android studio编译一个项目时,我偶尔会遇到:

错误:在ABI with的NDK工具链文件夹中没有找到工具链 前缀:arm-linux-androideabi / llvm

可能是更新相关组件导致。解决方案是Android studio (Tools -> Android -> SDK Manager)。 选择ndk项并删除它。如果程序需要它,可以重新安装它。这将确保文件夹位置是正确的,不会有这样的问题。

打开你的包。Gradle文件和升级以下两个类路径的版本:

classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:4.2.0'

然后同步,在得到一个对话框更新Gradle版本,然后点击该链接,等待下载所有所需的更新。

像我一样解决它

Android工作室 文件>项目结构并转到项目

将Gradle版本更改为4.6 & Android插件版本到3.2.1

检查屏幕截图

然后清理项目,如果你得到这个错误“无法找到aapt2- protoo .jar”

去建造。gradle(项目)

尝试移动谷歌()方法。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”中进行这些更改

检查屏幕截图

如果你没有找到谷歌(),添加它