随着项目引用的库以及jar包越来越多,今天需要给客户发apk时,出现了一个问题。运行没问题,但是打包就出现问题。
于是各种百度,发现说引用冲突,感觉是即时通讯的v4包跟自己的v4包冲突了,于是就把app的v4引用删了,结果还是报错。
于是我仔细看了看错误日志,就是Message里面的错误日志,发现这样一句话。
错误找到了,64K。
什么原因呢?当依赖包太多,dex突破64K了。解决方案如下
一.app的gradle添加依赖
compile ‘com.android.support:multidex:1.0.1’
二. 在app的gradle中defaultConfig{ }中添加 multiDexEnabled true
三.在 自定义的全局app继承 MultiDexApplication或重写attachBaseContext
最后一步:
app的gradle中添加
dexOptions {
javaMaxHeapSize “4g”
}
记得跟buildToolsVersion 同级
这样子重新打包就好了