3

このキャッシュ ライブラリを新しいプロジェクト Android でテストしようとしています。
プロジェクトを実行すると、次の Logcat が表示されます。

01-24 03:45:31.109: E/AndroidRuntime(1983): FATAL EXCEPTION: main
01-24 03:45:31.109: E/AndroidRuntime(1983): Process: com.test_cache, PID: 1983
01-24 03:45:31.109: E/AndroidRuntime(1983): java.lang.NoClassDefFoundError: com.jakewharton.DiskLruCache
01-24 03:45:31.109: E/AndroidRuntime(1983):     at com.integralblue.httpresponsecache.compat.libcore.net.http.HttpResponseCache.<init>(HttpResponseCache.java:83)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at com.integralblue.httpresponsecache.HttpResponseCache.<init>(HttpResponseCache.java:155)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at com.integralblue.httpresponsecache.HttpResponseCache.install(HttpResponseCache.java:192)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at com.test_cache.MainActivity.onCreate(MainActivity.java:21)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at android.app.Activity.performCreate(Activity.java:5243)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2140)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at android.app.ActivityThread.access$700(ActivityThread.java:135)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at android.os.Handler.dispatchMessage(Handler.java:102)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at android.os.Looper.loop(Looper.java:137)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at android.app.ActivityThread.main(ActivityThread.java:4998)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at java.lang.reflect.Method.invokeNative(Native Method)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at java.lang.reflect.Method.invoke(Method.java:515)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
01-24 03:45:31.109: E/AndroidRuntime(1983):     at dalvik.system.NativeStart.main(Native Method)

Craig Andrews の HttpResponseCacheプロジェクトとJake Wharton の DiskLruCacheプロジェクトから両方の jar をlibs フォルダーにコピーしました。
プロジェクト ファイル

これは私の MainActivity.java です:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final long httpCacheSize = 10 * 1024 * 1024; // 10 MiB
    final File httpCacheDir = new File(getCacheDir(), "http");

    try {
        com.integralblue.httpresponsecache.HttpResponseCache.install(httpCacheDir, httpCacheSize);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }        
}

他のスレッドで注文の問題を読んだので、Java ビルド パスの [注文とエクスポート] タブで、これを最初に配置しました。 ビルド パス
注文とエクスポート

私はプロジェクトをきれいにし、再構築しましたが、何も機能しません。問題は解決しません...何か
考えはありますか...??

ありがとう。

4

1 に答える 1

3

disklrucache-2.0.2.jarhttpresponsecache- 1.3.jarを使用したため

ライブラリhttpresponsecache-1.3.jar で disklrucache-1.2.1.jar使用します

disklrucache -1.2.1.jarのパッケージはcom.jakewharton ですが、バージョン 2.0.2 ではパッケージがcom.jakewharton.disklrucacheに変更されています。

それが根本原因です。

disklrucacheを使用する場合は、バージョン 1.2.1 を使用する必要があります

ここからダウンロードできます: http://www.mediafire.com/download/e2q4vz7kdlwxxr3/disklrucache-1.2.1.jar (.jar)

またはソースファイル: https://www.mediafire.com/?933nqqe9j4227cc (.jar)

これがあなたを助けることを願っています。

ここに画像の説明を入力

于 2014-01-24T10:46:46.627 に答える