android studio使用NDK 代码可以运行,但全报红,build报以下错误

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++ 找不到定义,报红, 运行又没问题,基本上都是脚本冲突了,使用最小测试法一点一点测试,就能找到问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值