Мне нужно предоставить некоторые ресурсы Пикассо, чтобы удовлетворить довольно странный запрос. Для этого мне нужно импортировать Picasso в качестве проекта библиотеки вместо скомпилированной банки. Я создал новый проект Android и скопировал содержимое picasso \ picasso \ src \ main \ java (клонированный мастер) в папку src. Picasso использует OkHttp, поэтому я загрузил последнюю версию jar (2.3.0) и поместил ее в папку libs проекта Picasso; добавили его в путь сборки; выбрал банку в настройках пути «Заказ и экспорт». Наконец, я сделал проект Picasso библиотекой и включил ее в основной проект (также удалил старую банку Picasso из libs).Импорт Picasso и OkHttp в Eclipse
Первый раз, когда приложение пытается сделать запрос Пикассо я получаю следующее исключение:
04-12 17:04:15.956: E/AndroidRuntime(5436): java.lang.NoClassDefFoundError: com.squareup.okhttp.internal.DiskLruCache$4
04-12 17:04:15.956: E/AndroidRuntime(5436): at com.squareup.okhttp.internal.DiskLruCache.<clinit>(DiskLruCache.java:810)
04-12 17:04:15.956: E/AndroidRuntime(5436): at com.squareup.okhttp.Cache.<init>(Cache.java:168)
04-12 17:04:15.956: E/AndroidRuntime(5436): at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:77)
04-12 17:04:15.956: E/AndroidRuntime(5436): at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:55)
04-12 17:04:15.956: E/AndroidRuntime(5436): at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:45)
04-12 17:04:15.956: E/AndroidRuntime(5436): at com.squareup.picasso.Utils$OkHttpLoaderCreator.create(Utils.java:424)
04-12 17:04:15.956: E/AndroidRuntime(5436): at com.squareup.picasso.Utils.createDefaultDownloader(Utils.java:250)
04-12 17:04:15.956: E/AndroidRuntime(5436): at com.squareup.picasso.Picasso$Builder.build(Picasso.java:832)
04-12 17:04:15.956: E/AndroidRuntime(5436): at com.squareup.picasso.Picasso.with(Picasso.java:662)
Указанный класс, как представляется, в банке, но DiskLruCache.java кажется сломанным в общей сложности 9 файлов классов :
$ ls DiskLruCache*
DiskLruCache$1.class DiskLruCache$4.class DiskLruCache$Entry.class
DiskLruCache$2.class DiskLruCache$Editor$1.class DiskLruCache$Snapshot.class
DiskLruCache$3.class DiskLruCache$Editor.class DiskLruCache.class
Я готов предоставить дополнительную информацию. Любые советы будут высоко оценены.
Edit:
Проблема, кажется, в OkHttp банке. Я попытался импортировать его в основной проект вместе с банкой Пикассо (последняя версия - 2.5.2), и я получаю то же исключение. Я не вижу никаких предупреждений OkHttp, указывающих на несовместимость, как указано в некоторых других потоках.
такое же исключение для меня, только с банкой в папке libs. – GPack
Можете ли вы предоставить дополнительную информацию о вашем случае? –
Использование Eclipse Luna с пикассо-2.5.2 jar и okhttp-2.3.0 jar (мне нужно использовать OkHttpClient) в папке libs моего проекта: я получаю ту же идентичную ошибку, что и ваша. – GPack