相关疑难解决方法(0)

如何在Picasso中使用磁盘缓存?

我正在使用Picasso在我的Android应用程序中显示图像:

/**
* load image.This is within a activity so this context is activity
*/
public void loadImage (){
    Picasso picasso = Picasso.with(this); 
    picasso.setDebugging(true);
    picasso.load(quiz.getImageUrl()).into(quizImage);
}
Run Code Online (Sandbox Code Playgroud)

我已启用调试,它始终显示红色和绿色.但从不显示黄色

现在,如果我下次加载相同的图像并且互联网不可用,则不会加载图像.

问题:

  1. 它没有本地磁盘缓存吗?
  2. 如何启用磁盘缓存,因为我将多次使用相同的图像.
  3. 我需要为android清单文件添加一些磁盘权限吗?

android caching image picasso

116
推荐指数
5
解决办法
10万
查看次数

OkHTTP和Picasso不会一起运行

我在我的项目中使用Picasso库来加载图像和缓存它们.它没有任何问题,效果很好.但是,当我尝试使用OkHttp库与我的服务器(JSON通信)进行数据通信时,Picasso会抛出异常.

我使用以下罐子:okhttp-2.0.0-RC2,okio-1.0.0,picasso-2.2.0.当我添加这些罐子后运行我的项目时,它崩溃了以下内容:

06-12 11:13:15.824: E/dalvikvm(12105): Could not find class 'com.squareup.okhttp.HttpResponseCache', referenced from method com.squareup.picasso.OkHttpDownloader.<init>
Run Code Online (Sandbox Code Playgroud)

我添加了okhttp只是为了使用以下方法:

public static String executeHttpGet(String urlStr) {
    Response response = null;
    String result = "";
    OkHttpClient client = new OkHttpClient();

    try {
        Request request = new Request.Builder().url(urlStr).build();

        response = client.newCall(request).execute();
        result = response.body().string();
    } catch (Exception ex) {

    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码没有任何问题.然而,使用Picasso库并且用于完美工作的代码开始抛出以下例外:

06-12 11:19:49.307: E/AndroidRuntime(13036): FATAL EXCEPTION: main
06-12 11:19:49.307: E/AndroidRuntime(13036): java.lang.NoClassDefFoundError: com.squareup.okhttp.HttpResponseCache
06-12 11:19:49.307: E/AndroidRuntime(13036):    at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:74)
06-12 11:19:49.307: E/AndroidRuntime(13036):    at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:51)
06-12 11:19:49.307: …
Run Code Online (Sandbox Code Playgroud)

android picasso okhttp

20
推荐指数
3
解决办法
2万
查看次数

OkHttpClient的NoClassDefFoundError

在gradle中添加facebook依赖项后,我收到此运行时错误:

     compile 'com.facebook.android:facebook-android-sdk:4.6.0'
Run Code Online (Sandbox Code Playgroud)

请注意我也在使用okhttp:

    compile 'com.squareup.okhttp:okhttp:2.5.0'
Run Code Online (Sandbox Code Playgroud)

和错误日志是:

 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
Run Code Online (Sandbox Code Playgroud)

注意:我在三星手机4.4上遇到此错误,但在模拟器上moto g 5.0并且运行正常.

android facebook classnotfoundexception

11
推荐指数
2
解决办法
1万
查看次数