Android 解決方法數 65536 (65k) 限制
可能出現的錯誤資訊:
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
說明:這個方法是谷歌提供的.連結如下:
https://developer.android.com/studio/build/multidex.html
解決步驟:
1.步驟1:
android { compileSdkVersion 21 buildToolsVersion "21.1.0"
defaultConfig {
...
minSdkVersion 14
targetSdkVersion 21
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies { compile 'com.android.support:multidex:1.0.0' }
2.步驟2:
讓應用支援多DEX檔案。在MultiDexApplication JavaDoc中描述了三種可選方法:
1.在AndroidManifest.xml的application中宣告
android.support.multidex.MultiDexApplication;
2.如果你已經有自己的Application類,讓其繼承MultiDexApplication;
3.如果你的Application類已經繼承自其它類,你不想/能修改它,那麼可以重寫attachBaseContext()方法:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base); MultiDex.install(this);
}
附言:
Multidex仍有一些限制:
DEX檔案安裝到裝置的過程非常複雜,如果第二個DEX檔案太大,可能導致應用無響應。此時應該使用ProGuard減小DEX檔案的大小。
由於Dalvik linearAlloc的Bug,應用可能無法在Android 4.0之前的版本啟動,如果你的應用要支援這些版本就要多執行測試。
同樣因為Dalvik linearAlloc的限制,如果請求大量記憶體可能導致崩潰。Dalvik linearAlloc是一個固定大小的緩衝區。在應用的安裝過程中,系統會執行一個名為dexopt的程式為該應用在當前機型中執行做準備。dexopt使用LinearAlloc來儲存應用的方法資訊。Android 2.2和2.3的緩衝區只有5MB,Android 4.x提高到了8MB或16MB。當方法數量過多導致超出緩衝區大小時,會造成dexopt崩潰。
Multidex構建工具還不支援指定哪些類必須包含在首個DEX檔案中,因此可能會導致某些類庫(例如某個類庫需要從原生程式碼訪問Java程式碼)無法使用。
相關文章
- Android應用解決65K方法數限制Android
- 由Android 65K方法數限制引發的思考Android
- multidex解決65k方法數問題IDE
- [Android]解決android65K方法引用限制Android
- 解決Android單個dex檔案不能超過65536個方法問題Android
- Windows TCP連線數限制解決WindowsTCP
- 解決網站限制IP的三個方法網站
- Android 突破 DEX 檔案的 64K 方法數限制Android
- android方法數超過64K的解決方案Android
- 解決linux開啟檔案數1024限制的解決辦法Linux
- [轉]Android ANR 分析解決方法Android
- Dynamics CRM 圖表超出最大記錄限制的解決方法
- Android錯誤解決方法集錦Android
- 有趣的ES:解決es返回結果數量限制問題
- Android Studio 包衝突解決方法Android
- 解決sqlserver限制2G記憶體限制安裝SQLServer記憶體
- 菲波那契數 時間限制: 1000 ms 記憶體限制: 65536 KB 提交數: 51737 通過數: 26371 【題目描述】 菲波那契數列是指這樣的數列: 數列的第一個和記憶體
- Android: The following classes could not be instantiated: 解決方法Android
- Android Studio 包衝突的解決方法Android
- [android]adb remount失敗的解決方法AndroidREM
- sqlmap+tor解決ip黑名單限制SQL
- Android unspecified' depends on one or more Android Libraries but is a jar 的解決方法AndroidJAR
- Android 8.0 的部分坑及對應解決方法Android
- EF Power Tools引數不正確的解決方法
- 解決織夢dedecms限制標題長度
- 代理508限制錯誤怎麼解決?
- BottomNavigationView解決三個限制記錄NavigationView
- XWorkParameterInterceptor類繞過安全限制漏洞-解決2
- aix中使用者ulimit 限制的解決AIMIT
- 65536問題理解v4
- win10系統怎麼解除寬頻限制?win10系統自動限制寬頻速度的解決方法Win10
- Python限制輸入數字的範圍常用方法!Python
- Android 中 View.setEnabled(false) 無效的解決方法AndroidViewFalse
- [轉]Android專案原始碼混淆問題解決方法Android原始碼
- MongoDB in 數量限制MongoDB
- 限制併發數
- implementation 'com.guo.android_extend:android-extend:1.0.6'失敗解決方法Android
- 怎麼解決網站限制IP的問題?網站