WebService請求伺服器,4.0系統出現java java.lang.NoClassDefFoundError錯誤
阿新 • • 發佈:2019-01-30
開發中利用WevService請求伺服器大4.0系統出現java java.lang.NoClassDefFoundError
這個問題開始之前,先解決jar包衝突,專案中用到ksoap2-android-assembly-3.6.2-jar-with-dependencies.jar和okhttp-2.7.5.jar兩個jar包。
packagingOptions {
exclude 'META-INF/maven/com.squareup.okio/okio/pom.xml'
exclude 'META-INF/maven/com.squareup.okio/okio/pom.properties'
exclude 'META-INF/maven/com.squareup.okhttp3/okhttp/pom.xml'
exclude 'META-INF/maven/com.squareup.okhttp3/okhttp/pom.properties'
}
原因:
NoClassDefFoundError異常,方法超數異常,jar包引入太多,裡面的額方法合計超過了65535個,就會在4.0系統出現這個異常
解決辦法1:
public class MyApp extends MultiDexApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(base);
}
繼承MultiDexApplication 類,重寫attachBaseContext方法,新增 MultiDex.install(base);就搞定。
解決辦法2:
看見有人說配置build.gradle,如下程式碼,但是我的沒解決。
dependencies {
compile 'com.android.support:multidex:1.0.0'
}
做筆記,也為需要的人服務