随着應用的不斷開發,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>
編譯運作即可。