原先跑得好好的项目,在studio3里面build出来后居然在好几台Android 4.2的机器上运行不了。(Android 5以上的机器就没发现问题。)
都是一启动就爆错误:

java.lang.RuntimeException: Unable to get provider com.alibaba.sdk.android.feedback.util.FBFileProvider: java.lang.ClassNotFoundException: Didn't find class "com.alibaba.sdk.android.feedback.util.FBFileProvider" on path: DexPathList[dexElements=[zip file "/data/app/com.boosj.boosjapp-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.boosj.boosjapp-1, /vendor/lib, /system/lib]]

配置调了半天并没有什么卵用。
后来搜到一篇文章说是多重dex加载机制上的问题。
解决方法如下。

1、在module下的build.gradle文件 ,添加multiDexEnabled true

除了在build.gradle的defaultConfig里配置multiDexEnabled true外,还要在dependencies内加入implementation 'com.android.support:multidex:1.0.0'

defaultConfig {multiDexEnabled true}dependencies {implementation 'com.android.support:multidex:1.0.0'
}

defaultConfig {applicationId "com.kakaxi.xx"minSdkVersion 14targetSdkVersion 22versionCode 1versionName "1.0.1"multiDexEnabled truetestInstrumentationRunner "android.test.InstrumentationTestRunner"

2、在android节点内部添加jumboMode = true

dexOptions {javaMaxHeapSize "4g" jumboMode = true
}

3、添加分包依赖,谷歌官方推出了multidex兼容包,配合AndroidStudio实现了一个APK包含多个dex的功能

compile 'com.android.support:multidex:1.0.1'
//或者implementation 'com.android.support:multidex:1.0.0'

4、让自己的Application继承MultiDexApplication类,或者在Application下重新attachBaseContext(Context base)方法,初始化 MultiDex.install(this);如何下图

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

搞定,收工。


其实原理还没整明白,改天翻一下源码理解一下。


补充说明,偶尔修改类文件名之后也会报DexPathList相关的错误,这种一般clear project再rebuild project就可以解决了。

附加

如何查看apk方法数

方法一:dexdump -f apkName.apk | findstr method_ids_size

dexdump.exe直接用android_sdk\build-tools下的,用高版本下的,低版本有的有问题,dexdump.exe和apk放同一目录下,方式运行;

方法二:采用dex-method-counts.jar

java -jar dex-method-counts.jar apkName.apk

注意dex-method-counts.jar 和apk的完整路径

androidStudio分包引起的系统崩溃,报错ClassNotFoundException: Didn‘t find class “XXXView“ on path: DexPath../.apk相关推荐

  1. 太爽了今天解决了大问题!——LOL英雄联盟读条后崩溃报错error,错误LOL_public……一下午终于解决

    LOL英雄联盟读条后崩溃报错error,错误LOL_public-- 背景:是这样,前一天LOL退出时被我强退了,接着今天一如既往学了会python然后打算下把棋(云顶之弈),对了在这之前还搞了下自己 ...

  2. Win7系统经常报错怎样解决?

    最近Win7系统经常报错,但不知道什么原因做成,又不想重装系统,如何找出报错的原 其实我们可以通过事件查看器查看错误日志,可以了解造成系统错误的具体原因! 1.在"开始"中右键,找 ...

  3. SAP WM LI04 试图去打印一个已经完成盘点流程(清账)的盘点单, 系统会报错!

    SAP WM LI04 Print Physical Inventory Document - Inventory record 30 already cleared – LI04 试图去打印一个已经 ...

  4. 关于win10系统还原报错的解决方案

    ** 关于win10系统还原报错的解决方案 ** 今天我重装Oracle时,老是报错,上网搜了一些解决方案,懵懵懂懂,想起装之前在系统上创建了还原点,何不还原它呢? 但还原操作时遇到了这样的问题: 卷 ...

  5. AndroidStudio调用百度地图SDK,报错:errorcode: 200 uid: -1 appid -1 msg: APP不存在

    AndroidStudio调用百度地图SDK,报错:errorcode: 200 uid: -1 appid -1 msg: APP不存在 我傻了,抄了官网的代码没有把开发者key复制到Android ...

  6. 安装ubuntu系统,报错WslRegisterDistribution failed with error: 0x8007019e

    在windows应用商店安装ubuntu系统,报错WslRegisterDistribution failed with error: 0x8007019e 1.报错: Installing, thi ...

  7. React引入组件并使用 但系统一直报错说引入但没有使用 (问题解决方法)

    先来看一下我遇到的问题 这里明显使用了这个组件 但系统一直报错 说我们没有使用 react应用遇到这种问题 将首字母改成大写就解决了 认真确认后 简单说 就是将首字母改成大写 项目就可以跑起来 挺奇葩 ...

  8. Centos7系统重装报错“ /dev/root does not exist“解决办法

    Centos7系统重装报错" /dev/root does not exist"解决办法 一.报错场景 二.报错提示 三.报错分析 四.解决方法(理论) 1.解决方法1 2.解决方 ...

  9. Windows 7系统开机报错ERROR 0199

    Windows 7系统开机报错 ERROR 0199:System Security-IBM Security password retry count exceded. 解决办法:按F1进BOIS再 ...

最新文章

  1. php禁止代理ip访问_php禁止某ip或ip地址段访问的方法
  2. 中国企业云计算应用现状及需求
  3. HTML textarea 标签
  4. 使用JAVA来获得本日,本周,本月,本年的时间信息
  5. 改SB训练数据的名字
  6. [NAACL16]RNN文法
  7. 前端基础学习之CSS选择器
  8. Android 5.1 memory leak,Android 性能优化之使用MAT分析内存泄露问题
  9. 在电子政务项目中如何应付长官意识和拖沓的工作作风?
  10. DDOS---低轨道离子炮具体使用
  11. 如何卸载Adobe Premiere Pro CC 2017和Adobe Photoshop CC 2018
  12. MS17010原生打法
  13. 种草营销这样干 小红书KOC素人和KOL达人组合种草推广
  14. php 导出excel 设置列宽,php – 导出Excel文件时调整列宽
  15. 泛泛而谈的渲染学习记录(一)—— 描边中的轮廓边缘
  16. 计算机控制系统第2次作业,201609计算机控制系统作业2
  17. java的博_小博老师解析Java核心技术 ——I/O流
  18. Spark任务执行流程
  19. 汇通达IPO遇冷:募资缩水至3亿美元 汪建国与阿里是股东
  20. Hexo阶段三 -- 将Hexo部署到github

热门文章

  1. app营销变现系统,让你的app更值钱!
  2. SMDS:交换式多兆位数据服务--网络大典
  3. Win8系统flash无法播放视频怎么办?
  4. 一款功能强大的 IP 查询工具!开源,放心用
  5. 【转载】NetLogic买断多核芯片公司RMI
  6. 基于java的CRM客户关系管理系统的设计与实现
  7. 分布式系统和网络系统
  8. 机器视觉检测助力软包动力电池检测
  9. python+selenium 自动定时发QQ说说
  10. 【C++】约瑟夫环问题:任给正整数n和k,按下述方法可以得到1,2, …n的一个置换:将数字1,2,…,n环形排列,按顺时针方向自1开始报数,报到K时输出该位置上的数字,并使其出列。