1

我们有两个单独的Application.mk文件,一个有APP_ABI := armeabi armeabi-v7a,另一个有APP_ABI := x86. 这样做的原因是我们并不总是想为 X86 平台构建,而是只在满足某些条件时。因此,arm 构建由 shell 脚本无条件触发ndk-build,如果满足条件,该脚本会再次触发 X86。我面临的问题是每次触发 ndk-build 时,它都会执行以下操作: rm -f ./libs/arm64-v8a/lib*.so ./libs/armeabi/lib*.so ./libs/armeabi-v7a/lib*.so ./libs/armeabi-v7a-hard/lib*.so ./libs/mips/lib*.so ./libs/mips64/lib*.so ./libs/x86/lib*.so ./libs/x86_64/lib*.so如果现在触发 X86 构建并且构建完成,我会看到armeabiarmeabi-v7a删除 libs 文件夹。ndk-build 不应该只删除我们当前通过的那些 libs 文件夹APP_ABI吗?如果没有,有没有办法解决这个问题?

我认为build-all.mk在 NDK 发行版clean: clean-intermediates clean-installed-binaries中可能会清理所有库。

4

1 回答 1

1

不是最好的答案,但最终得到了以下黑客

run ndk-build for arm platform
cp -r ./libs/ /tmp/libs/
condition passes
run ndk-build for x86 platform
cp -r /tmp/libs/armeabi/ ./libs/armeabi/
cp -r /tmp/libs/armeabi-v7a/ ./libs/armeabi-v7a/
rm -rf /tmp/libs
于 2016-04-14T12:53:51.960 回答