8

サンプルをImplementing Effective Navigationから実行しています - EffectiveNavigation.zip - アクティビティのタブ付きのスワイプビューを実演しています。 4.2.2(API17)などの新しいプラットフォームでうまく動作します。Androidサンプルの実行中にClassNotFindExceptionが発生しました。

その後、私は、このような、あまりにも2.3.3(API10)などの古いプラットフォームをサポートしたいので、私は4にminSdkVersionがを下げる:

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

私は、次のいずれかの方法でサポートライブラリが含ま行います

V4 Support Library Setup - without resources
  • や本によって: - > Androidの[ツール] - > [追加] Suppor V7 Support Library Setup - with resources
  • か、右クリックでプロジェクトの本による
    1. tライブラリ

    とにかく、2.3.3デバイスでこのアプリケーションを実行すると、あいまいな実行時例外が以下のリストのように発生します。

    私の問題は、2.3.3のような古いデバイスでは実行できませんが、4.2.2などの新しいデバイスではうまく動作することです。

    さまざまなエミュレータでさまざまな設定を変更して、削除、再インポート、再構築、再実行を行いました。古いデバイスでは動作しません(古いデバイスではタブとスワイプビューを使用しています)。

    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

    Androidスタジオで試しました。同じ問題。 – RumburaK

    答えて

    14

    ようになります!

    この問題のほとんどは、アプリケーションがActionBarを実装していて、より多くの移行作業が必要だったということでした。私は主に(V4及びV7)、サポートライブラリを使用するために、いくつかの他のビットを変更する必要がありました:

    コードの変更:

    << 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(); 
    
    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"> 
    

    それは、クリーンアップして、プロジェクトを再構築についてではありません。

    今私は2.3.3 Android上でSwipeViewsを持つActionBarとタブを持っています。

    Googleはこれらのバックポートを非常に重視しています。私はそれらを使用する必要があります。あまりにも明らかで完全なドキュメントはありません。私はYouTubeの履歴を参照しない限り、自分自身でビデオを見つけることに苦労しています。最初にどのように見つけたのかさえ分かりません。

    -1

    あなたはハニカムあるアンドロイドアピ11 以下のタブでスワイプを使用することはできません。

    だから、マニフェストファイルには、一日、一晩無駄にした後、最終的に解決

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

    はいできます。 http://developer.android.com/tools/support-library/features.html#v4 – RumburaK

    関連する問題