我将 Android Studio 与 NDK、Gradle 和 CMake 结合使用来构建多个共享库并将它们链接在一起。
我在构建日志中一次又一次地收到相同的错误:
:app:processDebugManifest [Passed]
:app:externalNativeBuildDebug [Passed]
Source C:\XXX\app\build\intermediates\cmake\debug\obj\arm64-v8a\libBGS-d.so and destination C:\XXX\app\build\intermediates\cmake\debug\obj\arm64-v8a\libBGS-d.so must be different
这就像 gradle 试图在同一位置复制我的库。 问题是,我不知道这条指令是从哪里来的,也不知道我该如何调试它。构建日志中确实没有太多指示。
令人困惑的是,这种情况并非 100% 都会发生。好像某处存在竞争条件。有时也是另一个库导致构建失败。此外,清理项目也无济于事。
所以这是我的问题:有什么地方可以让我对 Gradle 构建顺序进行精细控制?
最佳答案
根据 Dan Albert 在 https://stackoverflow.com/a/62223434/8068814 的说法这似乎是一个错误,他建议清理项目,然后触发“刷新链接的 C++ 项目”,然后构建项目。由于它有时对您有用,因此对于您的情况而言,这可能是一个可靠的解决方案。
对我来说这没有帮助,但将 Gradle 插件恢复到 3.6.2 是我构建项目的唯一方法。
关于安卓工作室 NDK Gradle 构建 "Source ... and destination ... must be different",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62391435/