禁用特定项目的Gradle NDK构建

时间:2018-08-07 16:13:35

标签: android android-ndk

我有一个构建lib.aar人工制品的android库项目,以及一个在构建lib.aar之后导入该lib.aar的应用程序项目。 lib.aar需要构建NDK 17,因为它具有一些C ++ 17代码。 我设法成功建立.aar文件,但应用无法通过以下消息进行编译:  A problem occurred starting process 'command '/Users/user/Library/Android/sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/darwin-x86_64/bin/mips64el-linux-android-strip''。 这是因为NDK 17删除了对MIPS的支持,并且我无法升级到使用NDK 18beta的较新版本的android studio

如果我删除了'/ Users / user / Library / Android / sdk / ndk-bundle'文件夹的内容,删除了NDK,则该应用程序会正确构建,并且可以在应用程序内部使用lib.aar代码。 / p>

到目前为止,我已经尝试过:How do I disable the NDK build in Android Studio 1.0.1,这个https://gist.github.com/ph0b/9e59058ac59cac104398。将env变量ANDROID_NDK_HOME设置为虚拟文件夹即可,应用程序可以构建,但是有点黑。

有什么方法可以通过编程方式禁用应用程序项目的NDK构建,而不删除NDK文件夹吗?

1 个答案:

答案 0 :(得分:0)

  

这是因为NDK 17删除了对MIPS的支持,并且我无法升级到使用NDK 18beta的较新版本的android studio

r18也无法解决此问题;它仍然没有mips支持。解决该问题的方法是将应用程序中的gradle插件版本至少升级到3.1,这是NDK r17所要求的最低要求(并且非常不幸的是,出于某种原因甚至安装了NDK也是必需的。)

这里的另一个解决方案是将NDK r16b安装在某个地方,然后从应用程序的local.properties指向它,然后从SDK中选择aar。如果您只是在本地版本上工作,那么它将起作用,但是由于不应将local.properties签入版本控制,因此不会对其他人有太大帮助。