zoukankan      html  css  js  c++  java
  • Android将指定的.class打包到mainDex中

    1️⃣ 我们分包的时候会遇到一个问题,因为加载和初始化的问题,如果某个类不在mainDex中,那么程序就会报错,java.lang.NoClassDefFoundError。

    2️⃣ 在gradle中我们使用了如下代码可以将指定类型分配到mainDex中:

    afterEvaluate {
        tasks.matching {
            it.name.startsWith('dex')
        }.each { dx ->
           def listMain = project.rootDir.absolutePath+'/app/maindexlist.txt'
            if (dx.additionalParameters == null) {
                dx.additionalParameters = []
            }
           //改变dex方法数上线为50000,超过后进行拆分
           dx.additionalParameters += '--set-max-idx-number=50000'
            //方法数越界时则生成多个dex文件
            dx.additionalParameters += '--multi-dex'
            //maindexlist.txt文件为主dex中的类型配置文件
            dx.additionalParameters += '--main-dex-list=' + listMain
            //-main-dex-list指定的所有class会打包到主dex中
           dx.additionalParameters += '--minimal-main-dex'
      
        }
    }
    高版本的gradle需要使用如下方式配置:
    dexOptions {
            javaMaxHeapSize "4g"
            preDexLibraries = false
            additionalParameters = ['--multi-dex', '--main-dex-list=' + project.rootDir.absolutePath + '/app/maindexlist.txt', '--minimal-main-dex',
                                    '--set-max-idx-number=1000']
        }

    其实我们可以直接参考appuildintermediatesmulti-dexdebug目录下的maindexlist.txt文件
    在listMain中添加需要打进mainDex中的.class文件名称 如:
    android/support/multidex/MultiDex.class
    android/support/multidex/MultiDexApplication.class
    android/support/multidex/MultiDexExtractor.class
    android/support/multidex/MultiDexExtractor$1.class

    重新编译 打包 反编译后 我们会在反编译后的jar中看到新增的class文件

    具体multiDex分包配置可以参考 http://blog.csdn.net/gaozhan_csdn/article/details/51992100

      

    
    
  • 相关阅读:
    Windows XP下Qemu模拟器上OpenSolaris的安置
    图解SMC下Solaris用户图形经管(下)
    Solaris 10的功能
    在Solaris 下用DVD光盘保存数据(1)
    Solaris10下载、安设和设置装备摆设(2)
    Solaris 10密码忘记打点法子
    对Unix任事器进行性能监测(上)
    Solaris效力打点东西 SMF快速入门指南(3)
    Solaris 10主动安顿DVD运用步骤
    Solaris效劳经管器材 SMF疾速入门指南(2)
  • 原文地址:https://www.cnblogs.com/limingblogs/p/8036530.html
Copyright © 2011-2022 走看看