2017-04-14 69 views
2

我有一个安装了许多库项目作为模块添加的项目。Android Dex优化和方法计数

而且项目中的方法数量超过了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优化方式?我在主项目中进行了更改,而不是在我的模块项目中。或者我错过了什么?

有什么想法?

+0

你应该在这里发表您的依赖。你应该尽量让你的应用程序在一个单一的dex下。 –

回答

0

Documentation

变化:添加multiDexEnabled true失去'='

defaultConfig { 
    minSdkVersion 14 
    targetSdkVersion 23 
    multiDexEnabled true 
} 

而且你的类应该扩展Application

public class ApplicationContextNormal extends Application {} 
+0

如果它是multidex,它应该扩展'MultiDexApplication'并将'com.android.support:multidex:1.0.1'添加到依赖项。 –

+0

我尝试了所有这些,没有工作guyz。 –