2012-05-28 14 views
8

He estado intentando crear un Buscapersonas para mi aplicación que se ejecuta en <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="15" /> Escribí mi código de acuerdo con this blog post.Error al inflar la clase android.support.v4.view.ViewPager

XML para la actividad 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> 

Código para el adaptador:

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; 
    } 
} 

Código para la actividad

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); 
    } 
} 

por alguna razón, cuando corro esta aplicación, me sale este siguiente lista de errores:

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 

así, sé que está fallando porque estoy usando el android.support.v4.view.ViewPager, he intentado jugar con eso y cambiar a llanura ViewPager y importando android.support.v13 pero no ayudó ...

¿Alguna idea sobre cómo solucionar esto?

Respuesta

9

Asegúrese de colocar sus bibliotecas en una carpeta común como libs en su proyecto.

Haga clic con el botón derecho en el contenedor, luego seleccione Crear ruta y haga clic en Agregar a compilación.

Eso agregará su biblioteca a su proyecto. Si todo es correcto, puede verlo en una "carpeta" generada en el proyecto llamado "Bibliotecas referenciadas"

27

Vaya a Proyecto-> Propiedades-> Ruta de compilación de Java que seleccione Ordenar y exportar pestaña. Establezca la biblioteca android-support-v4.jar verificada y suba a la parte superior de la lista. Y limpia y rebuild..It funciona para la mayoría de los casos

+0

esta pregunta fue respondida hace 3 semanas ... ¿cuál es el punto en la copia de la respuesta aceptada y re-creación de entradas? – thepoosh

+0

Bueno, no sabía que fue respondido .. – sheetal

+9

Hay un punto. La respuesta de Knossos no me ayudó, pero la parte que dice "Set android-support-v4.jar library checked and up it to the top of the list". en la respuesta de Sheetal me ayudó mucho. +1 para esta respuesta. –

Cuestiones relacionadas