2014-01-24 4 views
3

Я пытаюсь проверить эту библиотеку кэша в новом проекте Android.
При запуске проекта, я получаю этот LogCat:java.lang.NoClassDefFoundError с HttpResponseCache и DiskLruCache

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) 

Я скопированный обе банки из проектов HttpResponseCache by Craig Andrews и DiskLruCache by Jake Wharton в моей ЛИЭС папке:
Project Files

Это мой 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, я положил это в первую очередь: Build Path
Order and Export

почистить proyect, перестраивать и ничего работы, проблема сохраняется ...
Любая идея ... ??

Спасибо.

ответ

3

Поскольку вы использовали disklrucache-2.0.2.jar и httpresponsecache-1.3.jar

В библиотеке httpresponsecache-1.3.jar использование disklrucache-1.2.1.jar

В disklrucache-1.2.1.jar упаковка: com.jakewharton но в версии 2.0.2 пакет изменен на com.j akewharton.disklrucache

Это основная причина.

Если вы хотите использовать disklrucache вы должны использовать версию 1.2.1

Вы можете скачать здесь: http://www.mediafire.com/download/e2q4vz7kdlwxxr3/disklrucache-1.2.1.jar (.jar)

или исходный файл: https://www.mediafire.com/?933nqqe9j4227cc (.jar)

Надеюсь, это может вам помочь.

enter image description here

+0

BRI-LLI-ANT !! Это сводило меня с ума. Огромное спасибо! – Randolf

+0

Добро пожаловать. Пожалуйста, будьте осторожны при использовании java lib. :) – Luc

Смежные вопросы