对于OkHttpClient,NoClassDefFoundError [英] NoClassDefFoundError for OkHttpClient

查看:194
本文介绍了对于OkHttpClient,NoClassDefFoundError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  compile'c​​om.facebook.android: facebook-android-sdk:4.6.0'

请注意,我也使用okhttp: / p>

  compile'c​​om.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的新实例可以找到该类的
定义。


NoClassDefFoundError



您应该使用

  compile'c​​om.facebook.android:facebook-android-sdk:4.10.0' 

之后,您可以通过非零退出值2得到此错误



然后

 code> defaultConfig {
...
minSdkVersion 14 //低于14不支持multidex
targetSdkVersion //您的

//启用multidex支持。
multiDexEnabled true
}

依赖关系{
compile'c​​om.android.support:multidex:1.0.0'
}




  1. 添加 multiDexEnabled true


  2. code> compile'c​​om.android.support:multidex:1.0.0' //或1.0.1





OkHttp在网络麻烦时坚持不懈:它将静默地从
恢复常见的连接问题。如果您的服务有多个
IP地址,如果第一个
连接失败,OkHttp将尝试替代地址。这对于IPv4 + IPv6和冗余数据中心的
服务是必需的。


您可以调用最新版本



  compile'c​​om.squareup.okhttp3:okhttp:3.2.0'

最后

  compile'c​​om .squareup.okhttp3:okhttp:3.0.1'
或//编译'com.squareup.okhttp:okhttp:2.5.0'
compile'c​​om.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'
}

  1. Add multiDexEnabled true

  2. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆