transformDexArchiveWithDexMergerForRelease和transformDexArchiveWithDexMergerForDebug任务之间的区别?

时间:2019-02-19 16:49:00

标签: android android-studio gradle android-gradle

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

以下是确切错误的摘要:

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 不会出现此错误?

transformDexArchiveWithDexMergerForDebug transformDexArchiveWithDexMergerForRelease 之间到底有什么区别?

P.S。我已经尝试清理并重建项目。

1 个答案:

答案 0 :(得分:0)

发生这种情况的一个原因是multidex。可能是在调试版本中获得了

    `multidexEnabled true

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