在项目遇到了 64k 问题。编译时不能通过,
项目中引用的第三方较多,然后在编译,或者编译成功但是刚开始运行,就会闪退,会发现有问题是某个类或类的方法没有找到。
解决办法:在 build.gradle 添加了
defaultConfig {
multiDexEnabled true
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
如果项目有混淆的可以加上混淆
这样的话能够编译通过。但是会发现启动后会找不到有的方法,然后就会崩溃。在BaseApplication 中实现如下,就可以了
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
//for multiDex 64k
MultiDex.install(this);
}
Execution failed for task ‘:excelSior:packageAllDebugClassesForMultiDex’.
java.util.zip.ZipException: duplicate entry: android/support/annotations/colorRes
在build.gradle 文件中添加
configurations {
all*.exclude group: 'com.android.support', module: 'support-annotations'
}
Error:Execution failed for task ‘:app:transformClassesWithJarMergingForDebug’.com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: android/support/v4/internal/view/SupportSubMenu.class
configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
如果遇到类似的问题, com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry:
然后就可以使用
all*.exclude group: 'com.android.support', module: 相应的引用包