Android Studio 3.0.1 忽略 Application.mk 中的 APP_ABI?

Android Studio 3.0.1 Ignoring APP_ABI in Application.mk?

在构建 NDK 应用程序时,Android Studio 是否应该忽略 Application.mk 中的值?

我已如下更改 Application.mk,但我的项目仍在构建 x86mips 等。它应该只构建 armeabi-v7a

#APP_ABI := all
APP_ABI := armeabi-v7a

构建输出 - 请参阅 x86

我注意到 setup-app.mk 文件中提到了 NDK_APP_ABINDK_DEFAULT_ABIS。这些是否应该覆盖 Application.mk 中包含的内容?

是否可以在 build.gradle 文件中指定变量,这些变量将传播到 setup-app.mk 文件中?

在哪里可以找到相关文档的最佳位置? - Google 目前文档非常稀少。

是的,技术原因是gradle在它生成的ndk-build的命令行指定了APP_ABI。对于 gnu make,命令行参数会覆盖 Makefile 中编写的任何内容。

Make 有 override 关键字可以帮助...只是这会破坏 externalNativeBuild 的精致结构。如果您希望您的 ndkBuild 与 Android Studio 合作,请让您的脚本尽可能简单和干净。

gradle 插件使用 abiFilters 来调整构建。其实官方文档describe 写的还不错