OkHTTP y Picasso no funcionan juntos

Uso la biblioteca de Picasso en mi proyecto para cargar imágenes y almacenarlas en caché. Funciona bien sin ningún problema. Sin embargo, cuando trato de usar la biblioteca OkHttp para realizar la comunicación de datos con mi servidor (comunicación JSON), Picasso lanza excepciones.

Yo uso las siguientes jarras: okhttp-2.0.0-RC2, okio-1.0.0, picasso-2.2.0. Cuando ejecuto mi proyecto después de agregar estos frascos, se bloquea con lo siguiente:

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> 

Agregué okhttp sólo para usar el siguiente método:

 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; } 

El código anterior funciona sin ningún problema. Sin embargo los códigos que utilizan la biblioteca de Picasso y solían trabajar perfectamente, comienzan a lanzar la siguiente excecption:

 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: E/AndroidRuntime(13036): at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:41) 06-12 11:19:49.307: E/AndroidRuntime(13036): at com.squareup.picasso.Utils$OkHttpLoaderCreator.create(Utils.java:319) 06-12 11:19:49.307: E/AndroidRuntime(13036): at com.squareup.picasso.Utils.createDefaultDownloader(Utils.java:171) 06-12 11:19:49.307: E/AndroidRuntime(13036): at com.squareup.picasso.Picasso$Builder.build(Picasso.java:490) 06-12 11:19:49.307: E/AndroidRuntime(13036): at com.squareup.picasso.Picasso.with(Picasso.java:390) 

Mi camino de la clase:

Introduzca aquí la descripción de la imagen

Si quito okhttp-2.0.0-RC2, okio-1.0.0, las líneas de Picasso trabajan.

¿Por qué sucede eso? ¿Cómo puedo usar dos bibliotecas juntas?

Esta combinación funciona para mí:

 compile 'com.squareup.okhttp:okhttp:2.2.0' compile 'com.squareup.okhttp:okhttp-urlconnection:2.2.0' compile 'com.squareup.picasso:picasso:2.4.0' 

Cambie a Picasso 2.3.2. También necesitará okhttp-urlconnection-2.0.0-RC2.

 //Below code for Picasso initializing once for the app private Picasso picasso; private OkHttpClient okHttpClient; okHttpClient = new OkHttpClient(); picasso = new Picasso.Builder(this) .downloader(new OkHttpDownloader(okHttpClient)) .build(); //Below code to retrieve the images whereever required on the app picasso.with(context).load(imageUrl).placeholder(R.drawable.ic_launcher) 

El código anterior funciona bien para mí.

Picasso utiliza 3 paquetes.

  1. Square.OkHttp
  2. Cuadrado
  3. Plaza.Picasso

Desea agregar 2 veces el paquete OkHttp y OkIO debido a usar la biblioteca OkHttp y la biblioteca Picasso.

Los 2 paquetes se incluyen en Picasso, no es necesario incluir la biblioteca OkHttp en su proyecto.

Pruebe estos:

 compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.squareup.okhttp3:okhttp:3.0.1' 

Si está usando eclipse IDE, en las propiedades del proyecto-> java construir ruta-> ordenar y exportar (última pestaña) revise la biblioteca picasso

Tuve los mismos errores. Funcionó para mí, espero que ayude. Introduzca aquí la descripción de la imagen

  • ¿Cómo puedo configurar la imagen de fondo con picasso en el código
  • Picasso Cargar imagen desde el sistema de archivos
  • Esquinas redondeadas con Picasso
  • Cargando imágenes con Picasso desde el almacenamiento interno
  • Android - picasso muestra solo marcador de posición, no la imagen de URL
  • Picasso image loading library: cómo cargar miniaturas de video
  • RecyclerView desplazamiento laggy
  • Imágenes que no se cargan con Picasso sin error
  • Almacenamiento en caché de disco Picasso
  • Uso de la biblioteca picasso con una vista de imagen circular
  • ¿Cómo implementar Pinch Zoom en la biblioteca de Picasso?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.