对于OkHttpClient,NoClassDefFoundError [英] NoClassDefFoundError for OkHttpClient
问题描述
compile'com.facebook.android: facebook-android-sdk:4.6.0'
请注意,我也使用okhttp: / p>
compile'com.squareup.okhttp:okhttp:2.5.0'
pre>
和错误日志是:
E / AndroidRuntime:致命EXCEPTION:Thread-109754
进程:com.venkat.project,PID:4453
java.lang.NoClassDefFoundError:com.squareup.okhttp.internal.Util
at com.squareup.okhttp。 OkHttpClient。< clinit>(OkHttpClient.java:57)
在com.venkat.project.http.MyHTTPThread.run(MyHTTPThread.java:127)
在com.venkat.project.http.MyHTTPThread .run(MyHTTPThread.java:61)
在java.lang.Thread.run(Thread.java:841)
02-23 18:11:02.729 4453-4573 / com.venkat.project I / dalvikvm:在前面拒绝重新启动vonyly失败的类Lcom / squareup / okhttp / OkHttpClient; v = 0x0
注意:我在Samsung手机4.4上收到此错误,但在模拟器和
解决方案你正在得到
java.lang.NoClassDefFoundError:com.squareup.okhttp.internal.Util
at com。 squareup.okhttp.OkHttpClient。< clinit>(OkHttpClient.java:57)
at com.venkat.project.http.MyHTTPThread.run(MyHTTPThread.java:127)
at com.venkat.project .http.MyHTTPThread.run(MyHTTPThread.java:61)
OkHttpClient的NoClassDefFoundError
public class NoClassDefFoundError extends LinkageError
如果Java虚拟机或ClassLoader实例尝试在类的定义中加载
(作为正常方法调用的一部分或
作为创建的一部分)使用新的exp的新实例可以找到该类的
定义。
您应该使用
compile'com.facebook.android:facebook-android-sdk:4.10.0'
之后,您可以通过非零退出值2得到此错误
然后
code> defaultConfig {
...
minSdkVersion 14 //低于14不支持multidex
targetSdkVersion //您的
//启用multidex支持。
multiDexEnabled true
}
依赖关系{
compile'com.android.support:multidex:1.0.0'
}
添加 multiDexEnabled true
code> compile'com.android.support:multidex:1.0.0' //或1.0.1
OkHttp在网络麻烦时坚持不懈:它将静默地从
恢复常见的连接问题。如果您的服务有多个
IP地址,如果第一个
连接失败,OkHttp将尝试替代地址。这对于IPv4 + IPv6和冗余数据中心的
服务是必需的。
您可以调用最新版本
compile'com.squareup.okhttp3:okhttp:3.2.0'
最后
compile'com .squareup.okhttp3:okhttp:3.0.1'
或//编译'com.squareup.okhttp:okhttp:2.5.0'
compile'com.facebook.android:facebook-android-sdk: 4.10.0'
然后
清洁和重新构建&同步
您的项目。希望这有帮助。After adding the facebook dependency in gradle I'm getting this runtime error:
compile 'com.facebook.android:facebook-android-sdk:4.6.0'
Please notice that I'm also using okhttp:
compile 'com.squareup.okhttp:okhttp:2.5.0'
and error log is:
E/AndroidRuntime: FATAL EXCEPTION: Thread-109754 Process: com.venkat.project, PID: 4453 java.lang.NoClassDefFoundError: com.squareup.okhttp.internal.Util at com.squareup.okhttp.OkHttpClient.<clinit>(OkHttpClient.java:57) at com.venkat.project.http.MyHTTPThread.run(MyHTTPThread.java:127) at com.venkat.project.http.MyHTTPThread.run(MyHTTPThread.java:61) at java.lang.Thread.run(Thread.java:841) 02-23 18:11:02.729 4453-4573/com.venkat.project I/dalvikvm: Rejecting re-init on previously-failed class Lcom/squareup/okhttp/OkHttpClient; v=0x0
Note: I'm getting this error on Samsung mobile 4.4 but on the emulator and on
moto g 5.0
it works.解决方案You are getting
java.lang.NoClassDefFoundError: com.squareup.okhttp.internal.Util at com.squareup.okhttp.OkHttpClient.<clinit>(OkHttpClient.java:57) at com.venkat.project.http.MyHTTPThread.run(MyHTTPThread.java:127) at com.venkat.project.http.MyHTTPThread.run(MyHTTPThread.java:61)
NoClassDefFoundError for OkHttpClient
public class NoClassDefFoundError extends LinkageError
Thrown if the Java Virtual Machine or a ClassLoader instance tries to load in the definition of a class (as part of a normal method call or as part of creating a new instance using the new expression) and no definition of the class could be found.
Quote from NoClassDefFoundError
You should use
compile 'com.facebook.android:facebook-android-sdk:4.10.0'
After that you can get this error finished with non-zero exit value 2
Then
defaultConfig { ... minSdkVersion 14 //lower than 14 doesn't support multidex targetSdkVersion //Yours // Enabling multidex support. multiDexEnabled true } dependencies { compile 'com.android.support:multidex:1.0.0' }
Call
compile 'com.android.support:multidex:1.0.0'
// or 1.0.1
OkHttp perseveres when the network is troublesome: it will silently recover from common connection problems. If your service has multiple IP addresses OkHttp will attempt alternate addresses if the first connect fails. This is necessary for IPv4+IPv6 and for services hosted in redundant data centers.
You can call latest version
compile 'com.squareup.okhttp3:okhttp:3.2.0'
Finally
compile 'com.squareup.okhttp3:okhttp:3.0.1' or // compile 'com.squareup.okhttp:okhttp:2.5.0' compile 'com.facebook.android:facebook-android-sdk:4.10.0'
Then
Clean and Re-Build & Sync
Your Project . Hope this helps .这篇关于对于OkHttpClient,NoClassDefFoundError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!