Android ndk 如何修复:“;ABI过滤器';arm64-v8a';在NDK版本x中不再受支持; 我正在从另一个公司建立一个Android项目,它涉及到自制的C++跨平台库。对于这些库的旧版本,在java中创建了一个完整的应用程序项目,该项目带有一个jni接口,用于访问这些库,这些库作为自己的模块存储在gradle.build文件中。由于谷歌对应用程序更新的要求,我们的目标是让应用程序针对arm64-v8a架构进行编译

Android ndk 如何修复:“;ABI过滤器';arm64-v8a';在NDK版本x中不再受支持; 我正在从另一个公司建立一个Android项目,它涉及到自制的C++跨平台库。对于这些库的旧版本,在java中创建了一个完整的应用程序项目,该项目带有一个jni接口,用于访问这些库,这些库作为自己的模块存储在gradle.build文件中。由于谷歌对应用程序更新的要求,我们的目标是让应用程序针对arm64-v8a架构进行编译,android-ndk,Android Ndk,该项目由以下人员组成: gradle实验插件0.11.0 gradle插件4.1 针对armeabi-v7a的boost 1.64.0(以arm64-v8a预编译库作为替代) opencv 2.4.13.2 ndk-r15c 我检查了所有依赖项,以获得一个arm64挂件,它仅用于boost依赖项 我试着改变用于每个项目的ABI列表,使其包含所有架构或单独包含所有架构。我尝试使用其他ndk版本。可能会有帮助但我没有完成的是将实验性gradle插件改为普通插件,但我没能做到这一点 我预计会出现一

该项目由以下人员组成:

  • gradle实验插件0.11.0
  • gradle插件4.1
  • 针对armeabi-v7a的boost 1.64.0(以arm64-v8a预编译库作为替代)
  • opencv 2.4.13.2
  • ndk-r15c
我检查了所有依赖项,以获得一个arm64挂件,它仅用于boost依赖项

我试着改变用于每个项目的ABI列表,使其包含所有架构或单独包含所有架构。我尝试使用其他ndk版本。可能会有帮助但我没有完成的是将实验性gradle插件改为普通插件,但我没能做到这一点

我预计会出现一些编译或链接错误,但它只告诉我“NDK版本r15.2.4203891中不再支持ABI过滤器‘arm64-v8a’”。如果我尝试其他架构,我会得到相同的错误,但当前选择的架构不是“arm64-v8a”。如果我给出了一个无效的体系结构,它会变为“目标ABI'hello'不受支持”,因此它会识别我认为的体系结构

第一个错误的堆栈跟踪: 配置项目“:app”时出现问题

执行模型规则时引发异常:NdkComponentModelPlugin.Rules#configureNativeLibrary(ModelMap、NdkConfig、NdkHandler、ModelMap、文件、ServiceRegistry)>create(livestage)>withType() 执行模型规则时引发异常:NdkComponentModelPlugin.Rules#configureNativeLibrary(ModelMap、NdkConfig、NdkHandler、ModelMap、文件、ServiceRegistry)>create(lib jni cxx)>withType() 执行模型规则时引发异常:NdkComponentModelPlugin.Rules#configureNativeBinary(BinaryContainer、ModelMap、NdkConfig、NdkHandler)>withType() NDK版本r15.2.4203891不再支持ABI筛选器“arm64-v8a”


这个实验性插件已经多年不受支持了,所以它不能工作也就不足为奇了。迁移到
externalNativeBuild

您应该升级到NDK r20。