2014-09-05 59 views
1

我试图在磁盘缓存中使用毕加索。为此,我知道我需要包含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) 

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

任何想法发生了什么问题?

回答

0

切换到okhttp 1.6.0似乎解决了崩溃。虽然我仍然无法获得磁盘缓存工作

0

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

问题在于L预览未正确打包,并在系统类路径中错误地显示了Okio。所有的崩溃都可以作为预发布软件的功能完全忽略。实际的L版本不会这样。

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