1、android开发(androidStudio环境)开放NDK的时候:报出:No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi
问题如图:
2、这里只说我自己的解决办法,作为参考:
问题翻译过来就是:在ABI的NDK工具链文件夹中没有找到带有前缀:arm-linux-androideabi的工具链
3、这个问题一般出现在开发NDK的时候出现的,我的工程中带有NDK开发的文件,直接添加C文件与.h头文件进行开发的。
4、解决办法:在build.gradle文件中添加 ndkVersion '22.1.7171670'
为了方便查看,这里我直接放整个文件源码:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.XX.XXX"
minSdkVersion 22
targetSdkVersion 22
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
// Specifies the ABI configurations of your native
// libraries Gradle should build and package with your APK.
//abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
abiFilters 'armeabi-v7a'
//ldLibs "lz"
}
externalNativeBuild {
cmake {
arguments '-DANDROID_STL=c++_static'
//cppFlags "-std=c++11"
//arguments '-DANDROID_STL=c++_shared'
cppFlags ""
}
}
}
sourceSets {
main {
// 1. 配置在根目录libs下可以加载第三方so库, (最好不要创建jniLibs, 在众多的开源库中可能会引起冲突,还没发现)
// 2. 运行时会自动将libs目录下的so库拷贝到指定目录
// 3. 如果自己创建的so不需要重新编译,可以将(app/build/intermediates/transforms)生成的so拷贝到这个目录
jniLibs.srcDirs = ['src/main/cpp/libs', 'jniLibs']
// 如果是单个文件夹 可以直接这样如下配置
// jniLibs.srcDir 'libs'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
version "3.10.2"
}
}
ndkVersion '22.1.7171670'
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}
5、NDK下载配置如图:
如有问题请留言。
-END