2012-05-28 54 views
8

我一直在試圖爲我的應用程序創建一個傳呼機<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="15" />我寫了我的代碼根據this blog post錯誤膨脹類android.support.v4.view.ViewPager

XML的尋呼機活動:

<?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> 

代碼適配器:

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

規範活動

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

出於某種原因,當我運行這個程序,我得到這個下面的錯誤列表:

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 

所以,我知道它的失敗,因爲我使用的是android.support.v4.view.ViewPager,我試着用,玩,改變爲純ViewPager和進口android.support.v13但它沒有幫助...

有關如何解決這個問題的任何想法?

回答

9

確保將庫放置在項目中的常用文件夾(如庫)中。

右鍵單擊jar,然後選擇Build Path,然後單擊Add to Build Path。

這會將您的庫添加到您的項目中。如果一切正常,你可以看到它比選擇訂單和出口標籤生成的「文件夾」中被稱爲「引用的庫」

27

轉到項目 - 該項目>屬性 - > Java構建路徑。設置android-support-v4.jar庫並將其放到列表的頂部。和清潔rebuild..It適用於大多數的情況下

+0

這個問題,得到的回答是大約3個星期前...什麼是在複製接受的答案,並重新發布了點? – thepoosh

+0

那麼我不知道這是回答.. – sheetal

+9

有一個點。 Knossos的答案並沒有幫助我,但是這樣說:「設置android-support-v4.jar庫被檢查並將其放入列表頂部。」在單張的答案幫了我一噸。 +1這個答案。 – 2013-05-18 16:43:38

相關問題