使用Androidstudio集成第三方代码的时候,经常会出现如下错误:
Error:**Execution failed for task ':app:transformClassesWithDexForDebug'.**
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: Cannot merge new index 66992 into a non-jumbo instruction!
先了解一下Dex是什么:
D e x 是 A n d r o i d 系 统 中 可 以 在 D a l v i k 虚 拟 机 上 直 接 运 行 的 文 件 格 式 。 j a v a 源 代 码 经 过 A D T 的 复 杂 编 译 后 转 换 成 D e x 文 件 , 这 是 一 个 逐 步 优 化 的 过 程 。
错误的原因之一可能是应为编译时发现有包冲突所导致。
解决办法是在项目app的build.gradle中的defaultConfig中添加 multiDexEnabled true
编译一下就好了。
不过据说multiDexEnabled 也是个坑, 使用也要慎重,具体原理有待探究。OK 记错完成