很多人在使用multidex的时候,指定主dex的类时,用的是网上的代码,
afterEvaluate {
tasks.matching {
it.name.startsWith('dex')
}.each { dx ->
if (dx.additionalParameters == null) {
dx.additionalParameters = ['--multi-dex']
} else {
dx.additionalParameters += '--multi-dex'
}
dx.additionalParameters += '--main-dex-list=list.txt'
}
}
对此我只能呵呵了,实际上从gradle plugin1.5开始,谷歌已经把multidex移入了transform api里。所以这个代码永远执行不到的。具体可以看下面的文章。(说实在的谷歌文档是蛮难找的,我找了好久)
http://tools.android.com/tech-docs/new-build-system/transform-api
目前如果仍然想这么实现的话,可以用
afterEvaluate {
tasks.matching {
it.transform.name.startsWith('dex')
}.each {
xxx
}
但是并没有文档推荐这么做,我只是看github上有人这样写。
其实gradle已经提供参数了,现在想添加maindex文件,只需要使用以下两个属性
multiDexKeepProguard file('multiDexKeep.pro') // keep specific classes using proguard syntax
multiDexKeepFile file('multiDexKeep.txt')
请大家不要再抄网上的啦,哈哈