2017-07-28 157 views
0

當應用程序類擴展MultiDex應用程序時,我的一個測試手機無法使用ADB安裝應用程序。切換應用程序調試版本和MultiDexApplication發佈版本

我試圖在build.gradle上實現this,我的應用程序類擴展了MultiDexApplication,但無法編譯。

buildTypes { 
release { 
    multiDexEnabled false 
} 
debug { 
    multiDexEnabled true 
} 
} 

參考文獻:1. https://developer.android.com/studio/build/multidex.html 2. Can I enable multidex in Android debug build only? 3. Conditionally inherit from class

+0

你想在調試環境中加快編譯時間? –

+0

向我們顯示您的日誌文件 –

+0

不,只要我的應用程序類擴展了MultiDexApplication,它就無法通過ADB安裝在該手機(中興通訊刀片A610)中。 我目前的工作是在調​​試時手動讓它擴展Application類。 –

回答

0

讓您Application類擴展MultidexApplication,但加入這一行到您的attachBaseContext

if (BuildConfig.DEBUG) { 
    MultiDex.install(this); 
} 
0

也許我可以建議一種不同的方法。 我假設你在你的發佈版本上使用了proguard,這就是爲什麼你不需要使用multidex發佈

如果你設置minifyEnabled true和useProguard false在調試上,這將去掉你的所有死代碼調試版本,但不會使用任何像混淆一樣的proguard優化。

您需要將您的proguard規則設置移動到默認配置,以便minify知道要保留哪些文件。

此方法可以幫助您避免在調試版本中使用multidex。

defaultConfig { 
    ... 
    proguardFile 'proguard-rules.pro' 
    proguardFiles getDefaultProguardFile('proguard-android.txt') 
} 

debug { 
    ... 
    minifyEnabled true 
    useProguard false 
} 

release { 
    ... 
    minifyEnabled true 
} 
相關問題