美文网首页
MultiDexApplication 分包

MultiDexApplication 分包

作者: _一叶孤帆 | 来源:发表于2020-09-10 16:55 被阅读0次

    为什么使用分包

    When your app and the libraries it references exceed 65,536 methods, you encounter a build error that indicates your app has reached the limit of the Android build architecture:

    官网文档指出,当您方法数超过 65536,则会构建报错。

    trouble writing output:
    Too many field references: 131000; max is 65536.
    You may try using --multi-dex option.
    

    or

    Conversion to Dalvik format failed:
    Unable to execute dex: method ID not in [0, 0xffff]: 65536
    

    了解 Dex 文件

    Android 5.0 (API 21) 之前,使用 Dalvik 运行字节码文件,默认情况,每个应用只能使用一个 dex 字节码文件。

    Android 5.0 及之后的版本,使用 ART 运行,本身支持加载多个 dex 文件,ART 会在应用安装时进行预编译,将多个 dex 文件编译成为 一个 .oat 文件,

    minSdkVersion 为 21 或者更高时,则会默认开启 MultiDex

    配置

    minSdkVersion 低于 21 时,按照下面方法开启 MultiDex

    1. 首先在 app 项目中的 build.gradle 中添加下面参数
    defaultConfig {
            ...
            multiDexEnabled true
            ...
        }
    
    dependencies {
        ...
        api 'com.android.support:multidex:1.0.1'
    }
    
    image.png image.png image.png

    新建类继承 MultiDexApplication

    package com.example.sealtalk_demo;
    
    import android.app.Application;
    
    import androidx.multidex.MultiDexApplication;
    
    import io.rong.imkit.RongIM;
    
    public class IMApplication extends MultiDexApplication {
    
        @Override
        public void onCreate() {
            super.onCreate();
    
        }
    }
    
    

    相关文章

      网友评论

          本文标题:MultiDexApplication 分包

          本文链接:https://www.haomeiwen.com/subject/zqvpektx.html