android - 如何重新生成 android_gradle_build.json 以使我的 NDK 项目从 Gradle 构建?
问题描述
我有一个在 Android Studio 下编译的 NDK 项目,但不是从 Gradle 中的命令行编译的。特别是,它缺少 /home/tim/git/jniApp/app/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json
我无法签入 .cxx,因为它在我的硬盘上塞满了绝对路径——对 CI 没用。
重现一个最小的例子:
- 在 Android Studio 中新建一个 C++ 项目,
- 使用附加的 ARM 手机构建它,
- 删除 app/.cxx 目录
- 运行 ./gradlew clean
- 构建 -> 刷新链接的 C++ 项目
- 运行 ./gradlew build
并且该构建失败,因为上述文件不存在。
特别是,我留下了这个输出:
$ ./gradlew build
> Task :app:externalNativeBuildDebug
Build native-lib_armeabi-v7a
ninja: Entering directory `/home/tim/git/jniApp/app/.cxx/cmake/debug/armeabi-v7a'
ninja: no work to do.
Build native-lib_arm64-v8a
ninja: Entering directory `/home/tim/git/jniApp/app/.cxx/cmake/debug/arm64-v8a'
ninja: no work to do.
Build native-lib_x86
ninja: Entering directory `/home/tim/git/jniApp/app/.cxx/cmake/debug/x86'
[1/2] Building CXX object CMakeFiles/native-lib.dir/native-lib.cpp.o
[2/2] Linking CXX shared library /home/tim/git/jniApp/app/build/intermediates/cmake/debug/obj/x86/libnative-lib.so
Build native-lib_x86_64
ninja: Entering directory `/home/tim/git/jniApp/app/.cxx/cmake/debug/x86_64'
ninja: no work to do.
> Task :app:externalNativeBuildRelease FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:externalNativeBuildRelease'.
> java.io.FileNotFoundException: /home/tim/git/jniApp/app/.cxx/cmake/release/armeabi-v7a/android_gradle_build.json (No such file or directory)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 2s
38 actionable tasks: 6 executed, 32 up-to-date
我选择 CMake 还是 ndk-build 似乎并不重要(我更喜欢 ndk-build,但如果我可以获得一个不关心主机绝对路径的命令行构建,我会选择 CMake )。
是否有一个 Gradle 目标来生成该丢失的文件 - 或者更好的是整个 .cxx 目录?
似乎这是一个 Android Studio 错误,如果没有的话。