Autore Topic: Impossibile avviare l'activity  (Letto 726 volte)

Offline Christian Giupponi

  • Utente junior
  • **
  • Post: 128
  • Respect: 0
    • Google+
    • http://it.linkedin.com/pub/christian-giupponi/29/628/810
    • ultimoprofeta
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ItalianDevTeam
  • Sistema operativo:
    Mac OSX Lion
Impossibile avviare l'activity
« il: 12 Aprile 2012, 14:54:44 CEST »
0
Salve a tutti,
sto seguendo un articolo per la realizzazione di layout stile google plus, ho scaricato il file di esempio, l'ho letto tutto e sembra tutto funzionante, nessun errore nemmeno da parte di Eclipse ma quando vado ad avviarlo l'applicazione crasha in avvio.

Questo è il file java principale
Codice (Java): [Seleziona]
package es.androcode.viewpager;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import es.androcode.viewpager.prueba.R;

public class PruebaViewPagerActivity extends Activity {

    private ViewPager columnas;
    private static int NUM_COLUMNAS = 3;
    private Context cxt;
    private ColumnasAdapter miAdapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        cxt = this;

        miAdapter = new ColumnasAdapter();
        columnas = (ViewPager) findViewById(R.id.columnas);
        columnas.setAdapter(miAdapter);
    }

    private class ColumnasAdapter extends PagerAdapter {
       
        @Override
        public int getCount() {
            return NUM_COLUMNAS;
        }

        @Override
        public Object instantiateItem(View collection, int position) {
            LinearLayout v = (LinearLayout) LayoutInflater.from(cxt).inflate(R.layout.columna1, null);
           
            if (position == 0) {
                v = (LinearLayout) LayoutInflater.from(cxt).inflate(R.layout.columna1, null);
            } else if (position == 1) {
                v = (LinearLayout) LayoutInflater.from(cxt).inflate(R.layout.columna2, null);
            } else {
                v = (LinearLayout) LayoutInflater.from(cxt).inflate(R.layout.columna3, null);
            }
           
            ((ViewPager) collection).addView(v, 0);

            return v;
        }

       
        @Override
        public void destroyItem(View collection, int position, Object view) {
            ((ViewPager) collection).removeView((LinearLayout) view);
        }

        @Override
        public boolean isViewFromObject(View view, Object object) {
            return view == ((LinearLayout) object);
        }

        @Override
        public void finishUpdate(View arg0) {
        }

        @Override
        public void restoreState(Parcelable arg0, ClassLoader arg1) {
        }

        @Override
        public Parcelable saveState() {
            return null;
        }

        @Override
        public void startUpdate(View arg0) {
        }
       
    }

}

Questo il main.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">
    <android.support.v4.view.ViewPager
       android:id="@+id/columnas"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent" />
</LinearLayout>

Questo il layout per le colonne (sono 3, 3 file xml identici)
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical" >

    <TextView
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:gravity="center"
       android:textStyle="bold"
       android:textSize="100dp"
       android:text="C 1"/>

</LinearLayout>

Questo il manifest
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="es.androcode.viewpager.prueba"
     android:versionCode="1"
     android:versionName="1.0">
    <uses-sdk android:minSdkVersion="7" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name="es.androcode.viewpager.PruebaViewPagerActivity"
                 android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

e per finire l'errore del logcat al quale non riesco a venire a capo!
Codice: [Seleziona]
04-12 14:46:53.181: E/AndroidRuntime(239): Uncaught handler: thread main exiting due to uncaught exception
04-12 14:46:53.231: E/AndroidRuntime(239): java.lang.RuntimeException: Unable to start activity ComponentInfo{es.androcode.viewpager.prueba/es.androcode.viewpager.PruebaViewPagerActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class android.support.v4.view.ViewPager
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.app.ActivityThread.access$2200(ActivityThread.java:119)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.os.Handler.dispatchMessage(Handler.java:99)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.os.Looper.loop(Looper.java:123)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.app.ActivityThread.main(ActivityThread.java:4363)
04-12 14:46:53.231: E/AndroidRuntime(239):         at java.lang.reflect.Method.invokeNative(Native Method)
04-12 14:46:53.231: E/AndroidRuntime(239):         at java.lang.reflect.Method.invoke(Method.java:521)
04-12 14:46:53.231: E/AndroidRuntime(239):         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
04-12 14:46:53.231: E/AndroidRuntime(239):         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
04-12 14:46:53.231: E/AndroidRuntime(239):         at dalvik.system.NativeStart.main(Native Method)
04-12 14:46:53.231: E/AndroidRuntime(239): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class android.support.v4.view.ViewPager
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
04-12 14:46:53.231: E/AndroidRuntime(239):         at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.app.Activity.setContentView(Activity.java:1622)
04-12 14:46:53.231: E/AndroidRuntime(239):         at es.androcode.viewpager.PruebaViewPagerActivity.onCreate(PruebaViewPagerActivity.java:24)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
04-12 14:46:53.231: E/AndroidRuntime(239):         ... 11 more
04-12 14:46:53.231: E/AndroidRuntime(239): Caused by: java.lang.ClassNotFoundException: android.support.v4.view.ViewPager in loader dalvik.system.PathClassLoader@44e41a50
04-12 14:46:53.231: E/AndroidRuntime(239):         at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
04-12 14:46:53.231: E/AndroidRuntime(239):         at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
04-12 14:46:53.231: E/AndroidRuntime(239):         at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.view.LayoutInflater.createView(LayoutInflater.java:466)
04-12 14:46:53.231: E/AndroidRuntime(239):         at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
04-12 14:46:53.231: E/AndroidRuntime(239):         ... 20 more
04-12 14:46:53.291: I/dalvikvm(239): threadid=7: reacting to signal 3

La cosa che mi lascia perplesso è questo:
Codice: [Seleziona]
Caused by: java.lang.ClassNotFoundException: android.support.v4.view.ViewPager in loader dalvik.system.PathClassLoader@44e41a50
soprattutto perchè la libreria è inclusa nel processo, è presente nel progetto sotto la voce References Library...

Qualcuno sa aiutarmi a venirne a capo?  :-o

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Impossibile avviare l'activity
« Risposta #1 il: 12 Aprile 2012, 15:06:20 CEST »
0
Hai copiato il JAR della support library nel folder LIBS vero?
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Christian Giupponi

  • Utente junior
  • **
  • Post: 128
  • Respect: 0
    • Google+
    • http://it.linkedin.com/pub/christian-giupponi/29/628/810
    • ultimoprofeta
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    ItalianDevTeam
  • Sistema operativo:
    Mac OSX Lion
Re:Impossibile avviare l'activity
« Risposta #2 il: 12 Aprile 2012, 16:17:45 CEST »
0
Hai copiato il JAR della support library nel folder LIBS vero?

Si e poi da lì l'ho aggiunto al path: