安卓工作室 NDK Gradle 构建 "Source ... and destination ... must be different"

标签 android gradle

我将 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/

相关文章:

java - 错误:任务 ':app:dexDebug'的执行失败。 > com.android.ide.common.process.ProcessException:

firebase - flutter 运行返回:评估项目 ':app' .“”> ASCII时发生问题

android - java.io.FileNotFoundException : can't create a file because of some error in filename , 仅在某些设备中面临此错误 ex :android 4. 1.2

java - Android BufferedReader 不读取整个响应

Android 工具栏 searchView 太宽无法移动其他项目

docker - 我将如何创建 Gradle 应用程序的 docker 容器?

Android studio - 生成已签名的 APK 失败

android - 我可以在 android 的 ListView Activity 中有多个列表吗

android - 更新了 Android SDK,现在无法将 apk 安装到真实设备

java - 无法将类型id 'http'解析为[简单类型,类io.dropwizard.jetty.ConnectorFactory]的子类型