dependencies { ... //支持multidex implementation 'com.android.support:multidex:1.0.3' } 代碼配置: 第一種,,Application直接繼承MultiDexApplication(針對(duì)沒(méi)有Application父類(lèi)的) public class GlobalApplication extends MultiDexApplication { ... } 第二種,重寫(xiě)attachBaseContext(針對(duì)已有Application父類(lèi)的) public class MyApplication extends GlobalApplication { ... @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); //支持multidex MultiDex.install(this); } } 使用MultiDex的最低版本要求是: compileSdkVersion 21 buildToolsVersion "21.1.0" 可能遇到的問(wèn)題:NoClassDefFoundError 有些類(lèi)沒(méi)有直接引用而并沒(méi)有打包到dex當(dāng)中導(dǎo)致classes not found出錯(cuò),,這是在開(kāi)啟multiDex時(shí),,多個(gè)dex文件中的類(lèi)是被gradle腳本分配的,而且app在啟動(dòng)時(shí),,首先加載的是MainDex,。
《Android學(xué)習(xí)筆記總結(jié)+最新移動(dòng)架構(gòu)視頻+大廠安卓面試真題+項(xiàng)目實(shí)戰(zhàn)源碼講義》 瀏覽器打開(kāi):qq.cn.hn/FTe 開(kāi)源分享 確,,可能會(huì)丟失一些app啟動(dòng)所需的 classes 。 有時(shí)候我們需要設(shè)定某些類(lèi)被放到MainDex中避免NoClassDefFoundError錯(cuò)誤, 在build.gradle中開(kāi)啟multiDex,,并指定配置文件: android { ... defaultConfig { ... //支持multidex multiDexEnabled true multiDexKeepProguard file('multiDexKeep.pro') // keep specific classes using proguard syntax multiDexKeepFile file('multiDexKeep.txt') // keep specific classes } } 注意multiDexKeep.pro和multiDexKeep.txt文件需要自己創(chuàng)建,,放在項(xiàng)目的app文件夾下 配置multiDexKeep.pro文件(語(yǔ)法和proguard-rules.pro一樣,作用也是混淆相關(guān)) -keepclassmembers class fqcn.of.javascript.interface.for.webview { public *; } 配置multiDexKeep.txt文件,指定類(lèi)即可,,這個(gè)是保留在MainDex里的類(lèi) android/support/design/widget/BaseTransientBottomBar$Behavior.class android/support/v7/widget/RecyclerView$6.class android/support/v4/app/FrameMetricsAggregator$MetricType.class com/transitionseverywhere/Slide$GravityFlag.class android/support/v7/view/menu/CascadingMenuPopup$3.class android/support/annotation/VisibleForTesting.class android/support/v4/media/session/MediaSessionCompatApi21.class android/support/v4/view/ViewCompat$ViewCompatApi26Impl.class android/support/v4/view/ViewCompat$ScrollAxis.class android/support/v4/view/ViewCompat$ViewCompatApi19Impl.class com/bumptech/glide/annotation/GlideType.class |
|
來(lái)自: 新用戶6594HGU4 > 《待分類(lèi)》