开发中利用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'
}
做笔记,也为需要的人服务