2012-08-25 14 views
5

sto cercando di usare la biblioteca di Jake Wharton ViewPagerIndicator nel mio progetto, e ho seguito il semplice tutorial disposto qui:ViewPagerIndicator ClassNotFoundException?

http://viewpagerindicator.com/

Ma io continuo a ricevere un ClassNotFoundException quando provo e faccio funzionare il mio progetto.

Ecco il codice XML che ho nel mio layout:

<android.support.v4.view.ViewPager 
    android:id="@+id/day_pager" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" /> 

<com.viewpagerindicator.TitlePageIndicator 
    android:id="@+id/titles" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" /> 

e qui è il codice corrispondente che ho (dayPage è un tipo ViewPager).

ArrayList<Integer> testData = new ArrayList<Integer>(); 
    testData.add(12); 
    testData.add(13); 
    testData.add(22); 

    dayPage = (ViewPager) this.getActivity().findViewById(R.id.day_pager); 
    dayPage.setAdapter(new DayAdapter(testData)); 

    //Bind the title indicator to the adapter 
    TitlePageIndicator titleIndicator = (TitlePageIndicator)this.getActivity().findViewById(R.id.titles); 
    titleIndicator.setViewPager(dayPage); 

I valori in testData sono spazzatura per ora.

La traccia di stack completo è:

08-25 22:32:23.420: E/AndroidRuntime(1710): FATAL EXCEPTION: main 
08-25 22:32:23.420: E/AndroidRuntime(1710): android.view.InflateException: Binary XML file line #12: Error inflating class com.viewpagerindicator.TitlePageIndicator 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at vt.finder.sherlock.ScheduleFragment.onCreateView(ScheduleFragment.java:50) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at vt.finder.sherlock.ScheduleFragment.onCreate(ScheduleFragment.java:30) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:835) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1083) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:635) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1431) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:431) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.support.v4.view.ViewPager.populate(ViewPager.java:895) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.support.v4.view.ViewPager.populate(ViewPager.java:772) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1234) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.View.measure(View.java:8313) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.View.measure(View.java:8313) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:531) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.View.measure(View.java:8313) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.View.measure(View.java:8313) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.View.measure(View.java:8313) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.ViewRoot.performTraversals(ViewRoot.java:839) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1859) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.os.Looper.loop(Looper.java:130) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at java.lang.reflect.Method.invoke(Method.java:507) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at dalvik.system.NativeStart.main(Native Method) 
08-25 22:32:23.420: E/AndroidRuntime(1710): Caused by: java.lang.ClassNotFoundException: com.viewpagerindicator.TitlePageIndicator in loader dalvik.system.PathClassLoader[/data/app/vt.finder.sherlock-1.apk] 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.LayoutInflater.createView(LayoutInflater.java:471) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570) 
08-25 22:32:23.420: E/AndroidRuntime(1710):  ... 37 more 

ho importato il progetto ViewPagerIndicator come una libreria al mio progetto, e ho ricontrollato che il nome del pacchetto era intatto, ed è stato. Ho fatto un clean sul mio progetto, ma continuo a ottenere che la classe non trovi eccezioni. Mi sto perdendo qualcosa?

+0

Assicurarsi che il progetto di libreria sia effettivamente associato al progetto dell'applicazione (ad esempio, viene visualizzato nelle dipendenze di Android in Eclipse). – CommonsWare

+0

hai importato il barattolo suppport? – Ahmad

+0

Non compare nelle dipendenze di Android .... dispari. Perché posso fare riferimento a TitlePageIndicator nel codice (così come importarlo) e non ottengo errori ..... c'è qualche lista in più in cui devo aggiungere il progetto? – Ethan

risposta

15

Un sacco di persone aggiungere questo alla cartella del lib o importarlo (il che non è corretto)

Invece è necessario aggiungere l'intero progetto (fonte e tutte le risorse) sotto la finestra di dialogo Proprietà/Android nelle biblioteche sezione (mostrato sotto)

Se non si è sicuri di ciò che si è fatto, provare a rimuovere tutti i riferimenti alla libreria in modo che non sia nella libreria o nella cartella della libreria di riferimento e non venga visualizzato nelle proprietà/percorso di configurazione java - scheda librerie

Quindi aggiungere nuovamente l'intero progetto tramite la finestra di dialogo proprietà/android, fare una build pulita (a volte due volte, grazie eclipse) e dovrebbe funzionare correttamente.

added it to Eclipse?

+0

Che ne pensi di Android Studio ?! Che cosa funziona? – brunoramonalmeida

1

I passi suggerite sopra non ha funzionato per me, ma questo ha fatto il trucco:

  • fare clic destro sul progetto, proprietà
  • java percorso di generazione, scheda fonte
  • cartella add, aggiungere la problematica cartella
Problemi correlati