2017-04-14 62 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。 –