android 方法数超过65k,解决dex方法数超过65536

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 方法数超过65k,解决dex方法数超过65536相关的知识,希望对你有一定的参考价值。

最近有朋友在问我,为什么我就加了一个类/一个库突然跑不起来了。

排查方式:

1、确认你的代码/引用没有问题
2、检查是否是65k问题

今天主要是解决 排查方式2的步骤,这个原因主要是因为你的apk包方法数过大。

技术分享图片

现在解决这个已经很方便了:

方式一(繁琐):程序分包,这个比较繁琐;需要对jvm加载Class的方式有足够的了解
方式二(快速,使用AS):

    1、使用google提供的分包库
    implementation ‘com.android.support:multidex:1.0.2‘
    implementation ‘com.android.support:multidex-instrumentation:1.0.2‘

    2、在主项目的build.gradle文件里设置 multiDexEnabled true

技术分享图片

    3、如果项目有自定义的Application类,那就在它的onCreate方法里加入  MultiDex.install(this);

技术分享图片

    4、如果3不满足,你需要在主项目的manifest文件里添加application标签的name属性为:
    android.support.multidex.MultiDexApplication

技术分享图片

以上是关于android 方法数超过65k,解决dex方法数超过65536的主要内容,如果未能解决你的问题,请参考以下文章

解决Android 应用方法数不能超过65K的问题

解决安卓中单个dex方法数超过65535的方法

Android 解决方法数 65536 (65k) 限制

安卓应用方法数超过64k解决办法:分割Dex

Android: Gradle Plugin 实现编译过程中 MainDex 文件的方法数打印

.dex 文件中的方法引用数超过 64K