Android 突破64K方法数限制解决办法

随着应用的不断开发,Android 应用的大小也在增加。当应用及引用的库达到特定大小时,会碰到65536限制,造成构建错误。

谷歌官方给了解决办法Android官网

65536表示这个数字很重要,代表的是单个 Dalvik Executable (DEX) 字节码文件内的代码可调用的引用总数。

解决办法:
如果minSdkVersion 为 21 或更高值,只需在项目中的修改 build.gradle 文件,将 multiDexEnabled 设置为 true 即可。
android {
    defaultConfig {
        ...
        minSdkVersion 21 
        targetSdkVersion 26
        multiDexEnabled true
    }
    ...
}
如果 minSdkVersion为20或更低值,则需要依赖Dalvik 可执行文件分包库。
android {
    defaultConfig {
        ...
        minSdkVersion 21 
        targetSdkVersion 26
        multiDexEnabled true
    }
    ...
}
dependencies {
  compile 'com.android.support:multidex:1.0.1'
}
然后自定义Application继承MultiDexApplication,并重写attachBaseContext()方法,并调用Multidex.install(this);
public class MyApplication extends SomeOtherApplication {
  @Override
  protected void attachBaseContext(Context base) {
     super.attachBaseContext(context);
     Multidex.install(this);
  }
}
当然不能忘记在AndroidManifest.xml中注册。
<application
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:name="com.example.test.MyApplication"
       ...
    </application>
编译运行即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值