很多人在使用multidex的時候,指定主dex的類時,用的是網(wǎng)上的代碼,
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開始,谷歌已經(jīng)把multidex移入了transform api里。所以這個代碼永遠執(zhí)行不到的。具體可以看下面的文章。(說實在的谷歌文檔是蠻難找的,我找了好久)
http://tools.android.com/tech-docs/new-build-system/transform-api
目前如果仍然想這么實現(xiàn)的話,可以用
afterEvaluate {
tasks.matching {
it.transform.name.startsWith('dex')
}.each {
xxx
}
但是并沒有文檔推薦這么做,我只是看github上有人這樣寫。
其實gradle已經(jīng)提供參數(shù)了,現(xiàn)在想添加maindex文件,只需要使用以下兩個屬性
multiDexKeepProguard file('multiDexKeep.pro') // keep specific classes using proguard syntax
multiDexKeepFile file('multiDexKeep.txt')
請大家不要再抄網(wǎng)上的啦,哈哈