2012-05-28 15 views
8

Ho cercato di creare un cercapersone per la mia applicazione che funziona su <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="15" /> Ho scritto il mio codice in base allo this blog post.Errore durante il gonfiaggio della classe android.support.v4.view.ViewPager

XML per l'attività Pager:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <android.support.v4.view.ViewPager 
     android:id="@+id/instructionsViewPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
</LinearLayout> 

Codice per l'adattatore:

public class MyPagerAdapter extends PagerAdapter { 

    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return 2; 
    } 

    @Override 
    public boolean isViewFromObject(View arg0, Object arg1) { 
     return (arg0 == ((View) arg1)); 
    } 

    @Override 
    public void destroyItem(ViewGroup container, int position, Object object) { 
     ((ViewPager) container).removeView((View) object); 
    } 

    @Override 
    public Object instantiateItem(ViewGroup container, int position) { 
     LayoutInflater inflater = (LayoutInflater) container.getContext() 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     int resId = 0; 
     switch (position) { 
     case 1: 
      resId = R.layout.instructions_page1; 
      break; 
     case 2: 
      resId = R.layout.instructions_page2; 
      break; 
     } 
     View view = inflater.inflate(resId, null); 
     ((ViewPager) container).addView(view, 0); 
     return view; 
    } 
} 

Codice per l'attività

public class Instructions extends Activity { 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.instructions); 

     MyPagerAdapter adapter = new MyPagerAdapter(); 
     ViewPager pager = (ViewPager) findViewById(R.id.instructionsViewPager); 
     pager.setAdapter(adapter); 
     pager.setCurrentItem(0); 
    } 
} 

per qualche ragione, quando si esegue questa applicazione, ho questa lista seguente errore:

05-28 09:38:54.535: E/AndroidRuntime(18658): FATAL EXCEPTION: main 
05-28 09:38:54.535: E/AndroidRuntime(18658): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.thepoosh/com.thepoosh.Instructions}: android.view.InflateException: Binary XML file line #7: Error inflating class android.support.v4.view.ViewPager 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.os.Looper.loop(Looper.java:123) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.app.ActivityThread.main(ActivityThread.java:3691) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at java.lang.reflect.Method.invokeNative(Native Method) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at java.lang.reflect.Method.invoke(Method.java:507) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at dalvik.system.NativeStart.main(Native Method) 
05-28 09:38:54.535: E/AndroidRuntime(18658): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class android.support.v4.view.ViewPager 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.app.Activity.setContentView(Activity.java:1663) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at com.thepoosh.Instructions.onCreate(Instructions.java:11) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 
05-28 09:38:54.535: E/AndroidRuntime(18658): ... 11 more 
05-28 09:38:54.535: E/AndroidRuntime(18658): Caused by: java.lang.ClassNotFoundException: android.support.v4.view.ViewPager in loader dalvik.system.PathClassLoader[/data/app/com.thepoosh-1.apk] 
05-28 09:38:54.535: E/AndroidRuntime(18658): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.view.LayoutInflater.createView(LayoutInflater.java:471) 
05-28 09:38:54.535: E/AndroidRuntime(18658): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570) 
05-28 09:38:54.535: E/AndroidRuntime(18658): ... 20 more 

così, lo so che è mancato perché sto utilizzando il android.support.v4.view.ViewPager, ho provato a giocare con quello e cambiando a plain ViewPager e importando android.support.v13 ma non ha aiutato ...

qualche pensiero su come risolvere questo?

risposta

9

Assicurarsi di posizionare le librerie in una cartella comune come libs nel progetto.

Fare clic con il pulsante destro del mouse sul barattolo, quindi selezionare Percorso di creazione e fare clic su Aggiungi a percorso di creazione.

Questo aggiungerà la tua biblioteca al tuo progetto. Se tutto è corretto, puoi vederlo in una "cartella" generata nel progetto chiamato "Biblioteche di riferimento"

27

Vai a Progetto-> Proprietà-> Percorso di costruzione Java di selezionare la scheda Ordine ed esportazione. Impostare la libreria android-support-v4.jar controllata e posizionata in cima all'elenco. E pulito e rebuild..It lavora per la maggior parte dei casi

+0

questa domanda è stato risposto circa 3 settimane fa ... qual è il punto a copiare la risposta accettata e ri-posting? – thepoosh

+0

Beh, non sapevo che fosse risposta .. – sheetal

+9

C'è un punto. La risposta di Knossos non mi è stata di aiuto, ma il bit che dice "Imposta la libreria di android-support-v4.jar controllata e in cima alla lista." nella risposta di Sheetal mi ha aiutato un sacco. +1 per questa risposta. –

Problemi correlati