我必须从URL下载图像,该URL需要一些 header (用户名,密码)以及请求。所以我正在使用给定here的代码来做到这一点。但是调用此函数会产生错误
java.lang.NoClassDefFoundError: com.squareup.okhttp.OkHttpClient
at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:72)
我正在使用Picasso 2.3.3和okhttp-urlconnection-2.0.0-RC2库
这个问题也出现在this帖子中,但是更改为2.3.2无效。
最佳答案
您的项目中是否包含OkHttp?如果不是,则问题是您使用的是OkHttpDownloader。您可以在项目中包含OkHttp库,也可以仅包含UrlConnectionDownloader,如下所示。
这就是我最终得到的结果。
public static Picasso getImageLoader(Context ctx) {
Picasso.Builder builder = new Picasso.Builder(ctx);
builder.downloader(new UrlConnectionDownloader(ctx) {
@Override
protected HttpURLConnection openConnection(Uri uri) throws IOException {
HttpURLConnection connection = super.openConnection(uri);
connection.setRequestProperty("X-HEADER", "VAL");
return connection;
}
});
return builder.build();
}
关于android - 使用 picasso 的自定义下载器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24981469/