2012-11-25 17 views
5

Cóż, zdecydowałem się po prostu użyć paska stron. Zakładam, że biblioteka wsparcia, której używam, nie zawiera pagertabstrip. nie jestem pewien, jak to naprawić, ponieważ myślałem, że wszystko poprawnie zaktualizowane. Edytuj: Czy to już nie istnieje? Kiedy zmieniam PagerTabStrip na PagerTitleStrip, wszystko działa, ale nie jestem w stanie wchodzić w interakcje z tytułami, które są oczekiwane, dlatego chciałem użyć PagerTabStrip.PageTabStrip Class Not Found Wyjątek

Wróciłem do podstaw, aby znaleźć źródło mojego problemu. Zacząłem nowy projekt z importu ABS. Ustawiłem bardzo prosty pagerAdapter i prosty fragment. Użyłem przykładu z księgi pamiątkowej, a mimo to wciąż mam ten sam błąd. Klasa nie znaleziono wyjątku. Nie można znaleźć PagerTabStrip. Wysłany stos otrzymuje ten sam błąd za każdym razem. Jeśli usuniemy PagerTabStrip, wszystko działa poprawnie.

xml

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/pager" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <android.support.v4.view.PagerTabStrip 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="top" /> 

</android.support.v4.view.ViewPager> 

główną działalność

package com.example.pagetabswipe; 

import android.os.Bundle; 
import android.support.v4.view.ViewPager; 
import android.view.Menu; 

import com.actionbarsherlock.app.SherlockFragmentActivity; 

public class MainActivity extends SherlockFragmentActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     ViewPager pager = (ViewPager)findViewById(R.id.pager); 
     pager.setAdapter(new SampleAdapter(getSupportFragmentManager(), this)); 
    } 
} 

Adapter

package com.example.pagetabswipe; 

import android.content.Context; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 

public class SampleAdapter extends FragmentPagerAdapter { 
    Context ctxt=null; 
    public SampleAdapter(FragmentManager fm, Context ctxt) { 
     super(fm); 
     this.ctxt=ctxt; 
     // TODO Auto-generated constructor stub 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return (EditorFragment.newInstance(position)); 
    } 

    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return 10; 
    } 
    @Override 
    public String getPageTitle(int position) { 
    return(EditorFragment.getTitle(ctxt, position)); 
    } 
} 

Fragment

package com.example.pagetabswipe; 

import android.content.Context; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.EditText; 
import com.actionbarsherlock.app.SherlockFragment; 

public class EditorFragment extends SherlockFragment { 
    private static final String KEY_POSITION = "position"; 

    static EditorFragment newInstance(int position) { 
     EditorFragment frag = new EditorFragment(); 
     Bundle args = new Bundle(); 
     args.putInt(KEY_POSITION, position); 
     frag.setArguments(args); 
     return (frag); 
    } 

    static String getTitle(Context ctxt, int position) { 
     return (String.format(ctxt.getString(R.string.hint), position + 1)); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View result = inflater.inflate(R.layout.editor, container, false); 
     EditText editor = (EditText) result.findViewById(R.id.editor); 
     int position = getArguments().getInt(KEY_POSITION, -1); 
     editor.setHint(getTitle(getActivity(), position)); 
     return (result); 
    } 
} 

Błędy

11-24 18:01:25.630: E/AndroidRuntime(3505): FATAL EXCEPTION: main 
11-24 18:01:25.630: E/AndroidRuntime(3505): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.pagetabswipe/com.example.pagetabswipe.MainActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class android.support.v4.view.PagerTabStrip 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1696) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1716) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.app.ActivityThread.access$1500(ActivityThread.java:124) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:968) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.os.Handler.dispatchMessage(Handler.java:99) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.os.Looper.loop(Looper.java:130) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.app.ActivityThread.main(ActivityThread.java:3806) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at java.lang.reflect.Method.invoke(Method.java:507) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at dalvik.system.NativeStart.main(Native Method) 
11-24 18:01:25.630: E/AndroidRuntime(3505): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class android.support.v4.view.PagerTabStrip 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at com.actionbarsherlock.internal.ActionBarSherlockCompat.setContentView(ActionBarSherlockCompat.java:853) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at com.actionbarsherlock.app.SherlockFragmentActivity.setContentView(SherlockFragmentActivity.java:262) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at com.example.pagetabswipe.MainActivity.onCreate(MainActivity.java:14) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1660) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  ... 11 more 
11-24 18:01:25.630: E/AndroidRuntime(3505): Caused by: java.lang.ClassNotFoundException: android.support.v4.view.PagerTabStrip in loader dalvik.system.PathClassLoader[/data/app/com.example.pagetabswipe-2.apk] 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at java.lang.ClassLoader.loadClass(ClassLoader.java:551) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.view.LayoutInflater.createView(LayoutInflater.java:471) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570) 
11-24 18:01:25.630: E/AndroidRuntime(3505):  ... 20 more 

Każda pomoc będzie świetna. Nie jestem pewien, gdzie szukać rozwiązania tego problemu. Czuję, że przegapiłem coś bardzo podstawowego, co uniemożliwia odnalezienie PagerTabStrip w bibliotece pomocy.

+0

Znalazłeś jakieś rozwiązanie na to? Obecnie mam ten sam problem. –

Odpowiedz

9

Dla mnie to się stało ze względu na bibliotekę akcji, która ma starą wersję biblioteki wsparcia.

Z zaćmienia usunąłem bibliotekę wsparcia dla Androida ze ścieżki budowania projektu biblioteki actionbarsherlock.

Potem następuje porady tutaj, PagerTabStrip cannot be resolved to a type,

prawym przyciskiem myszy na projekcji ..

kliknij na "Narzędzia Android" -> "Dodaj wsparcie Bibliotekę"

po tym pobierze plik android-support.jar. i dodaj go do swojego projektu.

potem Eclipse rozpozna PagerTabStrip

+0

To brzmi poprawnie. Nie używałem zaćmienia od dłuższego czasu, ale byłoby sensowne, że biblioteka pomocnicza w systemie ABS uniemożliwiała mi korzystanie z właściwej biblioteki pomocy. Miałem ten problem z innymi bibliotekami i to było dobre rozwiązanie. – doubleA

Powiązane problemy