当前位置: 首页 > 知识库问答 >
问题:

OkHttpClient的NoClassDefFoundError

相化
2023-03-14

在gradle中添加facebook依赖项后,我得到了这个运行时错误:

     compile 'com.facebook.android:facebook-android-sdk:4.6.0'
    compile 'com.squareup.okhttp:okhttp:2.5.0'
 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

共有1个答案

魏澄邈
2023-03-14

最新版本的Piccasso使用旧版本的Okhttp,您需要使用新的依赖项

compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.squareup.picasso:picasso:2.5.2'    
compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.0.2'

示例

File httpCacheDirectory = new File(getCacheDir(), "picasso-cache");
Cache cache = new Cache(httpCacheDirectory, 10 * 1024 * 1024);

OkHttpClient.Builder clientBuilder = new OkHttpClient.Builder().cache(cache);
Picasso.Builder picassoBuilder = new Picasso.Builder(getApplicationContext());
picassoBuilder.downloader(new OkHttp3Downloader(clientBuilder.build()));
Picasso picasso = picassoBuilder.build();
try {
   Picasso.setSingletonInstance(picasso);
} catch (IllegalStateException ignored) {
  Log.e(LOG_TAG, "Picasso instance already used");
}
 类似资料:
  • 问题内容: 在我的项目中,我已经使用OkHttp(版本2.5.0)作为我的网络请求库。但是几天前,我尝试将Retrofit2作为应用程序的网络请求库的一部分,正如您所知,新的Retrofit2库依赖于OkHttp(版本3.2.0)。因此,当我的应用程序在其android android 5.0下的版本始终会导致崩溃(较大的版本运行良好且不会导致崩溃),崩溃堆栈信息如下所示: 从堆栈跟踪中,我猜想O

  • 斯塔克特莱斯 请求密钥:01-26 05:16:09.564:W/glsuser(2025):java.io.ioException:无效的设备密钥响应。01-26 05:16:09.564:W/Glsuser(2025):at 01-26 05:16:09.564:W/glsuser(2025):at kmo.run(:com.google.android.gms:450)01-26 05:16

  • 问题内容: 我想使用OkHttpClient加载URL,如果给定URL的网站以pdf内容类型响应,我将继续下载PDF,否则我想忽略响应。 我的问题是,我是否需要做一些特殊的事情来关闭请求/响应,或者如果我选择不读取响应字节流,是否需要做任何事情来表明我将不使用响应?如果没有,OkHttpClient何时关闭连接? 问题答案: 调用将释放响应所拥有的所有资源。连接池将使连接保持打开状态,但是如果未使

  • 我想使用OkHttpClient加载一个url,如果给定url的网站以pdf内容类型响应,我将继续下载pdf,否则我想忽略响应。 我的问题是,我是否需要做任何特别的事情来关闭请求/响应,或者我是否需要做任何事情来表明如果我选择不读取响应字流,我将不会使用响应?如果没有,OkHttpClient何时关闭连接?

  • 是否可以使用OkHttpClient限制活动连接的数量?所以,如果达到限制,就不会选择和建立新的连接? 我的应用程序同时启动多个连接。

  • 我正在使用OkHttpClient向网站的网页url发送请求,并通过以下方法存储它提供的cookie,我仅从stackoverflow获得该方法。 有必要存储cookie,否则网站会将请求重定向到超时页面。 然后,我看到页面的html来检查我是否到达了正确的网址。 现在,我以类似于网址“www.example.com/loginPage”的方式制作另一个请求变量,并尝试查看html,但它将我重定向