android - transformDexArchiveWithDexMergerForRelease 和 transformDexArchiveWithDexMergerForDebug 任务之间的区别?

标签 android android-studio gradle android-gradle-plugin

当我运行 assembleDebug 时,应用程序的调试 apk 已成功生成,但在尝试 assembleRelease 时,它导致 transformDexArchiveWithDexMergerForDebug 任务失败。

以下是确切错误的 fragment :

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':app:transformDexArchiveWithDexMergerForRelease'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException:
Program type already present: android.support.annotation.AnimRes

我想知道为什么 assembleDebug 不会出现这个错误?

transformDexArchiveWithDexMergerForDebugtransformDexArchiveWithDexMergerForRelease 究竟有什么区别?

附言我已经尝试清理和重建项目。

最佳答案

发生这种情况的一个原因是 multidex .可能在你的调试版本中的 gradle 中你有

    `multidexEnabled true

它允许您绕过调试版本的 64k 限制,因此 apk 已成功创建。生产代码通常发生的情况是您不启用 multidex 并使用 proguard减少引用的代码大小以不绕过 64k 限制。

关于android - transformDexArchiveWithDexMergerForRelease 和 transformDexArchiveWithDexMergerForDebug 任务之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54771178/

相关文章:

android - 断开Android中的蓝牙 socket

java - 插页式广告未加载?

android - 从 PhoneGap(Android) 访问外部 URL(Google.com)

android - 将 Google GMS 服务添加到 android studio 时出错

java - 使用 java 的 Process.exec 启动的进程始终返回退出代码 0

android - 错误 :Unexpected lock protocol found in lock file. 预期 3,找到 0

android - 平移对象背后的动画

android - 修复为属性 'signingConfig.storeFile' 指定的 .android\debug.keystore' 不存在。错误

android - 后端内部错误 : Exception during psi2ir

java - Gradle JavaExec 任务因以下任务之间的循环依赖而失败