Multidex坑

作者: doubimonkey | 来源:发表于2017-08-04 13:44 被阅读68次

    很多人在使用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')
    

    请大家不要再抄网上的啦,哈哈

    相关文章

      网友评论

        本文标题:Multidex坑

        本文链接:https://www.haomeiwen.com/subject/ilmvlxtx.html