Layout für ViewPager wird nicht gefunden

B

Boris0815

Fortgeschrittenes Mitglied
4
Hallo,

ich nutz für meine App den Viewpager. Dazu möchte ich den ViewPagerIndicator nutzen. Der ViewPager ansich hat schon mal funktioniert.
Nun habe ich den ViewPageIndicator hinzugefügt und habe nun das Problem, dass anscheinend der ViewPager nicht mehr gefunden wird.
Hier ein bissle Quellcode:
Code:
<?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"
  >
  <com.viewpagerindicator.TitlePageIndicator
    android:id="@+id/titles"
    android:padding="10dip"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent" 
  />
  <android.support.v4.view.ViewPager
      android:id="@+id/viewpager"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
      />

</LinearLayout>

Code:
            ViewPagerAdapter pagerAdapter = new ViewPagerAdapter(pages);
            viewPager = (ViewPager)findViewById(R.id.viewpager);
            viewPager.setAdapter(pagerAdapter);
     
            setContentView(R.id.viewpager);
            
            indicat = (TitlePageIndicator)findViewById(R.id.titles);
            indicat.setViewPager(viewPager);

Ich erhalte folgende FehlerMeldung:


Code:
07-19 09:59:53.671: W/System.err(18684): java.lang.NullPointerException
07-19 09:59:53.671: W/System.err(18684): at de.facentis.gui.AccountTabActivity.onCreate(AccountTabActivity.java:116)
07-19 09:59:53.671: W/System.err(18684): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-19 09:59:53.671: W/System.err(18684): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
07-19 09:59:53.671: W/System.err(18684): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
07-19 09:59:53.671: W/System.err(18684): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
07-19 09:59:53.671: W/System.err(18684): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
07-19 09:59:53.671: W/System.err(18684): at android.os.Handler.dispatchMessage(Handler.java:99)
07-19 09:59:53.671: W/System.err(18684): at android.os.Looper.loop(Looper.java:130)
07-19 09:59:53.671: W/System.err(18684): at android.app.ActivityThread.main(ActivityThread.java:3691)
07-19 09:59:53.671: W/System.err(18684): at java.lang.reflect.Method.invokeNative(Native Method)
07-19 09:59:53.671: W/System.err(18684): at java.lang.reflect.Method.invoke(Method.java:507)
07-19 09:59:53.671: W/System.err(18684): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
07-19 09:59:53.671: W/System.err(18684): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
07-19 09:59:53.671: W/System.err(18684): at dalvik.system.NativeStart.main(Native Method)

Zeile 116 ist: viewPager.setAdapter(pagerAdapter);
das viewPager-Objekt ist null. Der pagerAdapter ist nicht null.

Was kann ich da tun?

Gruß

Boris
 
Hallo,

wenn ich SetContent vor findById setze bekomme ich eine andere Fehlermeldung die mir leider nichts sagt.

Code:
android.content.res.Resources$NotFoundException: Resource ID #0x7f080001 type #0x12 is not valid
android.content.res.Resources.loadXmlResourceParser(Resources.java:2180)
android.content.res.Resources.getLayout(Resources.java:929)
android.view.LayoutInflater.inflate(LayoutInflater.java:318)
android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:215)
at android.app.Activity.setContentView(Activity.java:1663)
at de.facentis.gui.AccountTabActivity.onCreate(AccountTabActivity.java:62)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3691)
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:907)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
at dalvik.system.NativeStart.main(Native Method)

Gruß

Boris
 
Du kannst ja auch nicht einfach "sturr" dein setContentView(R.id.xy) davor setzten. Überleg doch mal!

Gruß

P.s.: Der Link hilft wirklich xD Habe ihn grade mal überflogen :D
 
Hallo,

ja ok das war nen Schnellschuß ins Leere. :blushing:
Id vs Layout ich habs nochmal gelesen...

Leider hab ich immernoch ein Problem, was aber an etwas anderem zu liegen scheint.
Ich füge mein PageViewer und den PageViewIndicator nun in der OnCreate-Methode hinzu.

Code:
            ViewPagerAdapter adapter = new ViewPagerAdapter(pages);

            viewPager = new ViewPager(this);
            viewPager.setAdapter(adapter);

            indicat = new TabPageIndicator(this);
            indicat.setViewPager(viewPager);

            LinearLayout body = (LinearLayout) findViewById(R.id.mainLinear);
            body.addView(indicat);
            body.addView(viewPager);
Das Layout:
Code:
<?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"
  android:id="@+id/mainLinear"
  >
</LinearLayout>
Wenn ich die betreffenden Zeilen mit "TabPageIndicator" auskommentiere funktioniert meine App ohne Probleme, wenn ich sie drinn lasse erhalte ich folgende Fehler:

Code:
FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.viewpagerindicator.TabPageIndicator
at de.facentis.gui.AccountTabActivity.onCreate(AccountTabActivity.java:122)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3691)
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:907)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
at dalvik.system.NativeStart.main(Native Method)
Ich habe jetzt schon einiges dazu gegoogled, aber komme trotzdem nicht weiter. Angeblich gab es, wie ich es verstanden habe, gibt es Probleme wenn man eine .jar in das Projekt einfügt.
Ich habe es auf zwei Arten probiert erhalte aber beides mal den gleichen Fehler.
Einmal habe ich die .jar ViewPageIndicator in mein package kopiert und dann über Properties -> Java Build Path die library eingebunden.
Als zweites habe ich das Projekt ViewPageIndicatorin meinen Workspace geladen und dort den Java Build Path gesetzt.
Aber wie gesagt beides ohne Erfolg.

An welcher Stelle muss ich schauen, um dieses Problem zu lösen?

Gruß

Boris
 
D.h. wenn du den Idecator weg machst, funktioniert es?!
Aber dann ist ja auch nicht der Idecator zu sehen, was du ja haben willst?
Richtig verstanden ja?!

Also ein problem zum "importieren" der .jar kann ja nicht sein. Sonst ist das kompletet "Projekt" nicht läuffähig :D

Hast du auch, wenn du den Idecator als "eigenstöndiges projekt in Eclipse" lädst, auch den haken gemacht, dass es eine libary ist? Bzw. eine 4.0.3(?) [musst du auf der homepage lesen!] API ist und nicht eine "Activity"?!

Gruß
 
D.h. wenn du den Idecator weg machst, funktioniert es?!
Aber dann ist ja auch nicht der Idecator zu sehen, was du ja haben willst?
Richtig verstanden ja?!

Jo.

Hast du auch, wenn du den Idecator als "eigenstöndiges projekt in Eclipse" lädst, auch den haken gemacht, dass es eine libary ist?

Ja. Unter den Properties des Indeicator-Projektes steht in der Auswahl Android das es eine Library ist.

Bzw. eine 4.0.3(?) [musst du auf der homepage lesen!] API ist und nicht eine "Activity"?!

Was meinst Du damit? In den Properties steht unter Android 1.6.

Gruß

Boris
 

Ähnliche Themen

M
  • MikelKatzengreis
Antworten
10
Aufrufe
224
swa00
swa00
L
Antworten
4
Aufrufe
1.337
lonnie9020
L
netfreak
  • netfreak
Antworten
10
Aufrufe
457
netfreak
netfreak
Zurück
Oben Unten