美文网首页Android开发技术Android技术知识Android知识
关于 Android Studio 配置方法数超过 64k 限制

关于 Android Studio 配置方法数超过 64k 限制

作者: 食梦兽 | 来源:发表于2017-02-16 10:15 被阅读560次

    版权声明:本文为 Bakumon 原创文章,转载需在明确位置注明出处!!!https://github.com/Bakumon/blog/issues/13


    项目中因为使用到了 Rxjava 等库,导致方法数超过了 64k 限制。于是准备使用 multidex 方案来解决,从此掉入了坑中。

    ps:一般的项目如果出现了 64k 限制问题,首先必须考虑的是替换那些只为了方便使用一个小功能而引入的比较大的库,而不是使用下面要介绍的规避 64k 限制的方法。

    首先得吐槽一下,开启 multidex 后,打包的速度简直不能再慢,打完一个包,我都可以喝完一杯咖啡了。。热爱生命的我们是最好不会使用它。

    1.修改模块级 build.gradle 文件

    android {
        compileSdkVersion 21
        buildToolsVersion "21.1.0"
    
        defaultConfig {
            ...
            minSdkVersion 14
            targetSdkVersion 21
            ...
    
            // Enabling multidex support.
            multiDexEnabled true
        }
        ...
    }
    
    dependencies {
      compile 'com.android.support:multidex:1.0.0'
    }
    

    2.引用 MultiDexApplication 类

    有两种方法来引用 MultiDexApplication 类,选一种使用即可。

    1. 继承 MultiDexApplication
    public class MyApplication extends MultiDexApplication {
        ...
    }
    
    1. 重写 Application 的 attachBaseContext 方法
    public class MyApplication extends Application {
        @Override
        protected void attachBaseContext(Context base) {
            super.attachBaseContext(base);
            MultiDex.install(this);
        }
    }
    

    记得在清单文件中注册 Application

    <application
        ...
        android:name=".MyApplication">
        ...
    </application>
    

    友情提示:
    千万不要忘了引用 MultiDexApplication 类这一步骤,否则,app 在 Android 5.0 以下版本中使用 umeng 统计会闪退,错误信息如下:

    java.lang.NoClassDefFoundError: com.umeng.analytics.d
    

    这是 umeng 论坛上给出的解决方法。 http://bbs.umeng.com/thread-16063-1-1.html

    相关文章

      网友评论

      本文标题:关于 Android Studio 配置方法数超过 64k 限制

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