64kDex分包插件解决ClassNotFoundException: Didn't find class"*FileProvider"on path:DexPathList[[zip file "d

解决方案

第一步:添加分包支持

android{
	defaultConfig {
		multiDexEnabled true
	}
}


dependencies { 
	compile 'com.android.support:MultiDex:1.0.1'
}

第二步:在继承的 Application中重写attachBaseContext(Context)

@Override 
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

第三步:在项目的Build.gradle中添加

buildscript {
    dependencies {
        classpath 'com.library.tangxiaolv:dexknife-plus:1.0.4'
    }
}

第四步:在App的Build.gradle中添加插件

apply plugin: 'dexknifePlus'

第五步: 在App的Android{}中配置参数

dexKnife{
    //必选参数
    enabled true //if false,禁用分包插件
    //可选参数
    //1.如果没有可选参数,将根据enabled决定是否分包。
    //2.如果有可选参数,需满足必选参数和可选参数的条件才允许分包
    productFlavor 'mock'
    buildType 'debug'

    /*
    *eg:当前productFlavors = dev,buildType = debug,
    *参数组合1:enabled = true,productFlavor = dev,buildType = debug 分包
    *参数组合2:enabled = true,productFlavor = mock,buildType = debug 不分包
    *参数组合1:enabled = true,buildType = debug 所有buildType = debug分包
    *参数组合1:enabled = true,productFlavor = dev 所有productFlavor = dev分包
    * */
}

第六步:在你的App模块目录下新建Text文件 dexknife.text,并自定义配置

#为注释符
#-----------主Dex中必要依赖的脚本配置-----------(支持依赖检测)
#默认保留四大组件中Service,ContentProvider,BroadcastReceiver三大组件,Activity组件选择性保留,若为空不保留任何Activity
-just activity com.ceabie.demo.MainActivity

#-----------附加类-----------(不支持依赖检测)
#如果你想要某个包路径在maindex中,则使用 -keep 选项,即使他已经在分包的路径中.若为空,不保留任意类
#-keep com.ceabie.demo.**

#保留单个类.
#-keep android.support.v7.app.AppCompatDialogFragment.class

#这条配置可以指定这个包下类在第二及其他dex中.
#-split android.support.v?.**

#将全部类移出主Dex
 -split **.**

#不包含Android gradle 插件自动生成的miandex列表.(不使用建议的依赖树,注释掉表示使用,否则-just activity无效)
#-donot-use-suggest

#(分割每个dex包的方法数上限) 扩展参数:例如 --set-max-idx-number=50000
#如果出现 DexException: Too many classes in --main-dex-list, main dex capacity exceeded:
#表明限制的方法数小于main dex的必要方法数,调大到合适数值即可
-dex-param --set-max-idx-number=4000

#注释掉将执行自定义dex分包,否则执行默认分包.
#-auto-maindex

#显示miandex的日志.
#-log-mainlist

原文链接https://github.com/TangXiaoLv/Android-Easy-MultiDex

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值