Android Dex优化和方法计数

时间:2017-04-14 14:01:24

标签: android gradle android-multidex

我有一个Android项目,其中添加了许多库项目作为模块。

项目中的方法数量超过了android(65k)的限制。我使用multidex作为解决方案。它没有解决我的问题。

这是我的build.gradle文件。

android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
aaptOptions {
    cruncherEnabled = false
}
defaultConfig {
    minSdkVersion 14
    targetSdkVersion 23
    multiDexEnabled = true
}}

首先,我尝试将MultiDex.install()添加到ApplicationContext文件中的onCreate方法中。它没有用。 而ApplicationContextNormal.java文件就在这里;

public class ApplicationContextNormal extends ApplicationContext {

@Override
public void onCreate() {
    MultiDex.install(this);
    super.onCreate();
}

}

然后,我尝试将MultiDex.install()添加到attachBaseContext方法中。

public class ApplicationContextNormal extends ApplicationContext {
...
   @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(base);
}
    ...

这是我的AndroidManifest.xml;

<application
    android:name="com.alyt.lytmobilenormal.connection.ApplicationContextNormal" 
...

我是否应该解决这个问题Dex优化方式?我对主项目进行了更改,而不是在我的模块项目中。或者我错过了什么?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

来自Documentation

更改此内容:添加multiDexEnabled true会失去'='

   defaultConfig {
    minSdkVersion 14
    targetSdkVersion 23
    multiDexEnabled true
}

此外,您的课程应扩展Application课程

public class ApplicationContextNormal extends Application {}