8

Uruchomiłem próbkę z Implementing Effective Navigation - EffectiveNavigation.zip - która demonstruje niektóre widoki przeciągnięcia z zakładkami w działaniu. Działa dobrze na nowszej platformie, takiej jak 4.2.2 (API17).Wyjątek ClassNotFindException przy próbie Android EffectiveNavigation dla starszej platformy

Następnie chcę wspierać starszych platform, takich jak 2.3.3 (API10) zbyt, więc obniżyć minSdkVersion do 4:

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17"/> 

zrobić to biblioteki wsparcia w jeden z następujących sposobów:

  1. o książce: V4 Support Library Setup - without resources
  2. lub w książce: V7 Support Library Setup - with resources
  3. lub kliknij prawym przyciskiem myszy na projekt -> Android Narzędzia-> Dodaj suppor t Biblioteka

W każdym razie, gdy uruchamiam aplikację na urządzeniu 2.3.3, ten niejednoznaczny wyjątek środowiska wykonawczego występuje tak, jak w poniższym wykazie.

Przed pośpiechu, który został poproszony przed uwaga: moim problemem jest to, że nie można go uruchomić na starszych urządzeniach, takich jak 2.3.3 - ale działa dobrze na nowszych urządzeniach, takich jak 4.2.2.

Usunąłem, ponownie przywiezione i odbudowany i ponownie z różnych zmienionych nastaw w różnych emulatorów. Po prostu nie działa na starszych urządzeniach (moim celem jest używanie kart i widoków przeciągania na starszych urządzeniach).

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.android.effectivenavigation/com.example.android.effectivenavigation.MainActivity}: java.lang.ClassNotFoundException: com.example.android.effectivenavigation.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.android.effectivenavigation-1.apk] 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
    at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:130) 
    at android.app.ActivityThread.main(ActivityThread.java:3683) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:507) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
    at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.ClassNotFoundException: com.example.android.effectivenavigation.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.android.effectivenavigation-1.apk] 
    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
    at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561) 
+0

Po prostu wypróbowany w Android Studio. Taki sam problem. – RumburaK

Odpowiedz

14

końcu rozwiązany, po upływie jednego dnia i jednej nocy zmarnowane!

Większość problemów polegała na tym, że aplikacja implementowała także ActionBar i wymagała więcej wysiłku migracyjnego. Musiałem zmienić niektóre inne kawałki korzystać z biblioteki obsługi (V4 i V7), głównie:

zmiany kodu w plikach Java:

<< import android.app.ActionBar; 
<< import android.app.FragmentTransaction; 
--- 
>> import android.support.v7.app.ActionBar; 
>> import android.support.v4.app.FragmentTransaction; 


<< public class MainActivity extends FragmentActivity implements ActionBar.TabListener { 
--- 
>> public class MainActivity extends ActionBarActivity implements ActionBar.TabListener { 


<< final ActionBar actionBar = getActionBar(); 
--- 
>> final ActionBar actionBar = getSupportActionBar(); 

Zmiany AndroidManifest.xml:

<< <uses-sdk android:minSdkVersion="14" /> 
--- 
>> <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/> 

<< android:theme="@android:style/Theme.Holo.Light.DarkActionBar"> 
--- 
>> android:theme="@style/Theme.AppCompat.Light.DarkActionBar"> 

Nie chodzi o sprzątanie i odbudowa projekt, choć może to zrobić, jeśli to sprawia, że ​​czujesz się lepiej.

Teraz mam ActionBar i karty z SwipeViews na moim 2.3.3 Android.

Google kładzie tak duży nacisk na te backporty, a ja muszę z nich korzystać, szkoda, że ​​nie ma bardziej przejrzystej i kompletnej dokumentacji na ten temat. Mam nawet problemy ze znalezieniem tego filmu wideo, jeśli nie odwołuję się do historii YouTube - nawet nie wiem, jak ją znalazłem.

-1

nie można używać z kartami swipes poniżej Android Api 11 o strukturze plastra miodu.

Więc Oczywisty plik będzie wyglądać

<uses-sdk 
     android:minSdkVersion="11" 
     android:targetSdkVersion="17" /> 
+0

Tak, możesz. http://developer.android.com/tools/support-library/features.html#v4 – RumburaK

Powiązane problemy