gradle3.0.0分包把指定的class放到maindex里面

网上找了很多都是说:

一配置可以分包:

 

defaultConfig {
    ******
    //分包1
    multiDexEnabled true
}
二、指定maindex需要包含的类,在APP目录下的maindexlist.txt 里面,这里面有两种配置,一种是高版本的gradle的配置,一种是低版本的gradle配置。
//分包2(高版本的gradle)
dexOptions {
    javaMaxHeapSize "4g"
    preDexLibraries = false
    additionalParameters = ['--multi-dex', '--main-dex-list='+ project.rootDir.absolutePath + '/app/maindexlist.txt', '--minimal-main-dex',
                            '--set-max-idx-number=1000']
}
 
//分包2(低版本的gradle配置) afterEvaluate { tasks.matching { it.name.startsWith('dex') }.each { dx -> def listFile = project.rootDir.absolutePath+'/app/maindexlist.txt'  if (dx.additionalParameters == null) { dx.additionalParameters = [] } //表示当方法数越界时则生成多个dex文件(我的没有越界,貌似也生成了两个)  dx.additionalParameters += '--multi-dex'  //这个指定了listFile中的类(即maindexlist.txt中的类)会打包到主dex中,不过注意下一条。  dx.additionalParameters += '--main-dex-list=' +listFile //表明只有-main-dex-list所指定的类(在我的配置中,就是app目录下的maindexlist.txt中包含的类)才能打包到主dex中,如果没有这个选项,上个选项就会失效  dx.additionalParameters += '--minimal-main-dex'  } }

 

三、添加分包插件依赖:

 

dependencies {
    ****
    //分包3
    compile 'com.android.support:multidex:1.0.2'
}

按照上面三步配置完,打包再解包,发现你自己指定的maindex并没有都在maindex里面(至少我的是这样),幸好找到了另外一种别人的配置,就是第一步的时候设置可以分包并且指定miandexlist.txt,如下:

 

 

defaultConfig {
    //分包1
    multiDexEnabled true
    multiDexKeepProguard file('multiDexKeep.pro') // keep specific classes using proguard syntax
    multiDexKeepFile file('maindexlist.txt') // keep specific classes
}

这样才是真正可以的指定需要的类到maindex的方式,至于配置哪些类到maindex的文件maindexlist.txt可以在app\build\intermediates\multi-dex\debug目录下的maindexlist.txt文件找到,然后把自己的类复制粘贴到里面去就可以了。这个文件大致这样:

retrofit2/http/PATCH.class
android/support/design/widget/FloatingActionButtonIcs.class
android/support/design/R$layout.class
android/support/v4/view/NestedScrollingParent.class
android/support/v4/media/session/MediaControllerCompat.class
android/support/annotation/IdRes.class
android/support/v4/view/ViewPager$4.class
android/support/design/widget/Snackbar$2.class
retrofit2/http/Field.class
android/support/annotation/ColorInt.class

补充环境:

编译版本:

gradle版本:

相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 10

打赏作者

hyk_Mr-y

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值