您的位置:首页 > 博客中心 > APP开发 >

android 傻瓜式 MultiDex 插件,从此再也不用担心方法数问题!

时间:2022-03-13 19:33

简介:Android 傻瓜式 MultiDex 插件,从此再也不用担心方法数问题!

注 1:不想看前半部分的话可以直接跳过到最下面配置部分。
注 2:本插件是基于优化改造而来,感谢 ceabie 的无私奉献。

参考=>.

解决:

扩展=>这篇比较好的介绍了 Transform API 的使用。

,他们是通过编写了一个能够自动分析 Class 依赖的脚本去算出主 Dex 需要包含的所有必要依赖。看来写脚本是跑不掉了。

查看 sdk\build-tools\platform-version\mainDexClasses.rules 发现放入主 Dex 相关类有 Instrumentation,Application,Activity,Service,ContentProvider,BroadcastReceiver,BackupAgent 的所有子类。

问题二:gradle 是在哪里算出主 Dex 依赖?
查看 Gradle 编译任务发现有如下 3 个编译任务:
技术分享

运行 collect 任务,发现会在 build/multi-dex 目录下单独生成
技术分享

问题三:在哪里控制由问题一我们知道生成
来源:

我们只需要在完成任务向量图之后,执行任务之前 Hook 一下 collect 任务,过滤掉不必要的 activity 就 OK 了。添加 Gradle:

参考=>

已知错误

注:分包的时候如果发现一些莫名的错误,可以关掉 instant run,一般都能解决

错误 1: (已修复)

Error:Execution failed for task ‘:Toon:transformClassesWithDexForDebug‘.> java.lang.NullPointerException (no error message)

发生此错误只要切换一次 Gradle 版本就 OK 了,比如 1.5.0

错误 2:(已修复)

Unsupported major.minor version 52.0

由于插件中使用到了 JDK1.8 的一些 API,所以将 JDK 升级到 1.8 就可以了

错误 3: (已修复)

Error:Execution failed for task ‘:app:transformClassesWithDexForDebug‘.
> DexKnife Warnning: Main dex is EMPTY ! Check your config and project!

gradle 切到 1.5.0,目前就发现 gradle 2.1.2 有这问题。

相关推荐

电脑软件

本类排行

今日推荐

热门手游