如何解决:“ NDK版本x不再支持ABI过滤器'arm64-v8a'”

时间:2019-11-12 15:30:53

标签: android-ndk

我正在建立另一个公司的android项目,该项目涉及自制的C ++跨平台库。对于这些库的较旧版本,使用java开发了一个完整的应用程序项目,该项目带有jni界面来访问这些库,这些库与gradle.build文件一起存储为它们自己的模块。由于Google要求更新应用程序,因此目标是针对arm64-v8a架构编译应用程序。

该项目的设置如下:

  • 渐变实验性插件0.11.0
  • gradle插件4.1
  • 为armeabi-v7a提升了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,File,ServiceRegistry)> create(livestage)> withType()   执行模型规则时抛出异常:NdkComponentModelPlugin.Rules#configureNativeLibrary(ModelMap,NdkConfig,NdkHandler,ModelMap,File,ServiceRegistry)> create(lib-jni-cxx)> withType()   执行模型规则时引发异常:NdkComponentModelPlugin.Rules#configureNativeBinary(BinaryContainer,ModelMap,NdkConfig,NdkHandler)> withType()   NDK版本r15.2.4203891不再支持ABI过滤器“ arm64-v8a”。

1 个答案:

答案 0 :(得分:0)

这个实验性插件多年来没有得到支持,因此它不起作用也就不足为奇了。迁移至externalNativeBuildhttps://developer.android.com/studio/projects/add-native-code