2012-05-28 35 views
8

Tôi đã cố gắng tạo ứng dụng Pager cho ứng dụng của mình chạy trên <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="15" /> Tôi đã viết mã theo this blog post.Lỗi khi lạm dụng lớp android.support.v4.view.ViewPager

XML cho hoạt động 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> 

Mã cho adapter:

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

Mã cho hoạt động

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

đối với một số lý do, khi tôi chạy ứng dụng này, tôi nhận được danh sách này báo lỗi sau:

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 

như vậy, tôi biết nó không vì tôi đang sử dụng android.support.v4.view.ViewPager, tôi đã cố gắng chơi với điều đó và chuyển sang đồng bằng ViewPager và nhập android.support.v13 nhưng không giúp được ...

bất kỳ ý tưởng nào về cách sửa lỗi này?

Trả lời

9

Đảm bảo rằng bạn đặt thư viện trong một thư mục chung như libs trong dự án của bạn.

Nhấp chuột phải vào bình, sau đó chọn Build Path và nhấp vào Add to Build Path.

Điều đó sẽ thêm thư viện của bạn vào dự án của bạn. Nếu mọi thứ đều chính xác, bạn có thể thấy nó trong thư mục "được tạo" trong dự án có tên là "Thư viện tham chiếu"

27

Đi tới Project-> Properties-> Java Build Path so với chọn tab Order and export. Đặt thư viện android-support-v4.jar và chọn nó lên đầu danh sách. Và sạch sẽ và rebuild..It làm việc cho hầu hết các trường hợp

+0

câu hỏi này được trả lời khoảng 3 tuần trước ... điểm nào trong sao chép câu trả lời được chấp nhận và đăng lại? – thepoosh

+0

Vâng tôi không biết nó đã được trả lời .. – sheetal

+9

Có một điểm. Câu trả lời của Knossos không giúp ích gì cho tôi, nhưng nói rằng "Hãy đặt thư viện android-support-v4.jar và chọn nó lên đầu danh sách." trong câu trả lời của Sheetal đã giúp tôi một tấn. 1 cho câu trả lời này. –

Các vấn đề liên quan