OkHTTP und Picasso laufen nicht zusammen

In meinem Projekt verwende ich die Picasso-Bibliothek, um Bilder zu laden und zwischenzuspeichern. Es funktioniert problemlos. Wenn ich jedoch versuche, mithilfe der OkHttp-Bibliothek eine Datenkommunikation mit meinem Server durchzuführen (JSON-Kommunikation), gibt Picasso Ausnahmen aus.

Ich benutze die folgenden Gläser: okhttp-2.0.0-RC2, okio-1.0.0, picasso-2.2.0. Wenn ich mein Projekt starte, nachdem ich diese Jars hinzugefügt habe, stürzt es folgendermaßen ab:

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>

Ich habe okhttp hinzugefügt, um die folgende Methode zu verwenden:

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

Der obige Code funktioniert problemlos. Die Codes, die die Picasso-Bibliothek verwenden und einwandfrei funktionieren, lösen jedoch die folgende Ausnahme aus:

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)

Mein Klassenpfad:

Wenn ich okhttp-2.0.0-RC2, okio-1.0.0 entferne, funktionieren Picasso-Linien.

Warum passiert das? Wie kann ich zwei Bibliotheken zusammen benutzen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage