AndroidStudio编译报错:[CXX1429] error when building with cmake using
还有android studio sync 后 C complier error 弹框 报一堆ndk的错误的
这些大都是build.gradle配置有问题 下面是修改前的build.gradle的ndk配置
android { namespace "com.pedro.library" compileSdk 34 defaultConfig { minSdkVersion 26 targetSdkVersion 34 externalNativeBuild { cmake { cppFlags "" abiFilters "arm64-v8a", "armeabi-v7a" } } ndk { abiFilters "arm64-v8a", "armeabi-v7a" } } buildTypes { release { minifyEnabled false consumerProguardFiles 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = '1.8' } externalNativeBuild { cmake { path "CMakeLists.txt" } } }
下面是修改后的ndk配置,有时候仅仅是一括号的问题,都会导致乱七八遭的NDK配置错误
android { namespace "com.pedro.library" compileSdk 34 defaultConfig { minSdkVersion 26 targetSdkVersion 34 externalNativeBuild { cmake { cppFlags "-std=c++11 -DDEBUG=1" abiFilters "arm64-v8a", "armeabi-v7a" } } ndk { abiFilters "arm64-v8a", "armeabi-v7a" } } buildTypes { release { minifyEnabled false consumerProguardFiles 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } kotlinOptions { jvmTarget = '1.8' } sourceSets { main{ jniLibs.srcDirs=['libs'] } } externalNativeBuild { cmake { path file("CMakeLists.txt") version "3.10.2" } } }
如果出现
undefined reference to `__aarch64_ldadd4_acq_rel' 等找不到函数的报错 ,大都是ndk版本的问题
把ndkVersion '21.4.7075529' 改为 ndkVersion '24.0.8215888' 再次sync下,就可以了
今天又遇到了这个错误,补充下
cpp 放在一级目录 下就没问题,一移动二级目录,就报红,找不到
Refresh Linked C++ Projects 就报 Error:error: linker command failed with exit code 1 右下角错误框
后面 把 下面这句话注掉,再编译下就ok了,然后,再加上这句,编译也没有问题
所以遇到C++ 找不到定义,报红, 运行又没问题,基本上都是脚本冲突了,使用最小测试法一点一点测试,就能找到问题