我必须从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/

10-12 04:50