天天看點

Android 突破64K方法數限制解決辦法

随着應用的不斷開發,Android 應用的大小也在增加。當應用及引用的庫達到特定大小時,會碰到65536限制,造成建構錯誤。

谷歌官方給了解決辦法Android官網

65536表示這個數字很重要,代表的是單個 Dalvik Executable (DEX) 位元組碼檔案内的代碼可調用的引用總數。

解決辦法:
如果minSdkVersion 為 21 或更高值,隻需在項目中的修改 build.gradle 檔案,将 multiDexEnabled 設定為 true 即可。
           
android {
    defaultConfig {
        ...
        minSdkVersion  
        targetSdkVersion 
        multiDexEnabled true
    }
    ...
}
           
如果 minSdkVersion為20或更低值,則需要依賴Dalvik 可執行檔案分包庫。
           
android {
    defaultConfig {
        ...
        minSdkVersion  
        targetSdkVersion 
        multiDexEnabled true
    }
    ...
}
dependencies {
  compile 'com.android.support:multidex:1.0.1'
}
           
然後自定義Application繼承MultiDexApplication,并重寫attachBaseContext()方法,并調用Multidex.install(this);
           
public class MyApplication extends SomeOtherApplication {
  @Override
  protected void attachBaseContext(Context base) {
     super.attachBaseContext(context);
     Multidex.install(this);
  }
}
           
當然不能忘記在AndroidManifest.xml中注冊。
           
<application
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:name="com.example.test.MyApplication"
       ...
    </application>
           
編譯運作即可。