毕加索在app启动时崩溃

时间:2014-09-05 23:46:50

标签: picasso okhttp

我正在尝试将Picasso与磁盘缓存一起使用。为此,我了解我需要包含okhttp和okio库。当我这样做时,我得到以下内容:

compile 'com.squareup.okio:okio:1.0.1'
compile 'com.squareup.okhttp:okhttp:2.0.0'
compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0'
compile 'com.squareup.picasso:picasso:2.3.4'

java.lang.NoSuchMethodError: No static method source(Ljava/io/File;)Lokio/Source; in class Lokio/Okio; or its super classes (declaration of 'okio.Okio' appears in /system/framework/okhttp.jar)
        at com.squareup.okhttp.internal.DiskLruCache.readJournal(DiskLruCache.java:243)
        at com.squareup.okhttp.internal.DiskLruCache.open(DiskLruCache.java:224)
        at com.squareup.okhttp.Cache.<init>(Cache.java:146)
        at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:74)
        at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:51)
        at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:41)
        at com.squareup.picasso.Utils$OkHttpLoaderCreator.create(Utils.java:407)
        at com.squareup.picasso.Utils.createDefaultDownloader(Utils.java:255)
        at com.squareup.picasso.Picasso$Builder.build(Picasso.java:605)
        at com.squareup.picasso.Picasso.with(Picasso.java:482)

这是一个全新的应用程序。

任何想法出了什么问题?

2 个答案:

答案 0 :(得分:0)

切换到okhttp 1.6.0似乎可以解决崩溃问题。虽然我仍然无法让磁盘缓存工作

答案 1 :(得分:0)

您可以删除Okio依赖项,它是可传递的。

问题是L预览包装不正确,并且在系统类路径上错误地暴露了Okio。作为预发布软件的功能,可以完全忽略所有崩溃。实际的L版本不会以这种方式运行。

更多详细信息,请访问https://github.com/square/okhttp/issues/967