无法在'Android L'模拟器上使用OkHttp运行应用程序

时间:2014-06-27 14:11:53

标签: android android-5.0-lollipop picasso okhttp okio

我们的应用程序使用最新版本的OkHttp(2.0.0)+ Okio(1.0.0)+ Picasso(2.3.2),我想在新的“Android L”模拟器(英特尔)上试用它并获得它安装但加载应用程序时,我得到这个:

06-27 09:47:16.214: E/AndroidRuntime(2815): FATAL EXCEPTION: main
06-27 09:47:16.214: E/AndroidRuntime(2815): 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)
06-27 09:47:16.214: E/AndroidRuntime(2815):     at   com.squareup.okhttp.internal.DiskLruCache.readJournal(DiskLruCache.java:243)
06-27 09:47:16.214: E/AndroidRuntime(2815):     at com.squareup.okhttp.internal.DiskLruCache.open(DiskLruCache.java:224)
06-27 09:47:16.214: E/AndroidRuntime(2815):     at com.squareup.okhttp.Cache.<init>(Cache.java:146)
06-27 09:47:16.214: E/AndroidRuntime(2815):     at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:74)
06-27 09:47:16.214: E/AndroidRuntime(2815):     at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:51)
06-27 09:47:16.214: E/AndroidRuntime(2815):     at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:41)
06-27 09:47:16.214: E/AndroidRuntime(2815):     at com.squareup.picasso.Utils$OkHttpLoaderCreator.create(Utils.java:407)
06-27 09:47:16.214: E/AndroidRuntime(2815):     at com.squareup.picasso.Utils.createDefaultDownloader(Utils.java:255)
06-27 09:47:16.214: E/AndroidRuntime(2815):     at com.squareup.picasso.Picasso$Builder.build(Picasso.java:596)

它来自用 Picasso.with(Context)创建Picasso对象。请注意,相同的代码,在没有任何更改的情况下,在之前的仿真器4.4.2(英特尔)上运行良好。

我不明白这个('osio.Okio'的声明出现在/system/framework/okhttp.jar中)来自哪里。

更新

我正在使用Eclipse Luna和最新的Android SDK工具。我还尝试在Order / Export中选择OkHttp jar并且错误仍然存​​在..

我使用了DDMS文件资源管理器,我在模拟器的路径 /system/framework/okhttp.jar 中找到了一个okhttp.jar(309字节)。也许这会导致问题,但为什么不查找我在APK中提供的okhttp.jar?

我暂时将推荐的'okhttp.jar'文件上传到此链接:http://www.filedropper.com/okhttp

1 个答案:

答案 0 :(得分:6)

L预览版没有正确打包Okio。这已经在AOSP master中修复了下一个预览版本。

有关使用Proguard在您自己的应用中重新打包Okio的解决方法,请参阅https://github.com/square/okhttp/issues/967