2015-12-29 33 views
0

我製作了一個ViewPager,然後我製作了一個適配器,然後使用(setAdapter)方法將我的Adapter放入Viewpager中。java.lang.NoClassDefFoundError(View Pager)

我相信,每一件事情是確定的,但是當我運行該項目,這個問題顯示:

12-29 11:50:26.076 27016-27016/com.example.maysara_.pager E/AndroidRuntime: FATAL EXCEPTION: main 
    java.lang.NoClassDefFoundError: com.example.maysara_.pager.MyAdapter 
    at com.example.maysara_.pager.MainActivity.onCreate(MainActivity.java:22) 
    at android.app.Activity.performCreate(Activity.java:5122) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1151) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2320) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2408) 
    at android.app.ActivityThread.access$600(ActivityThread.java:167) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1378) 
    at android.os.Handler.dispatchMessage(Handler.java:107) 
    at android.os.Looper.loop(Looper.java:194) 
    at android.app.ActivityThread.main(ActivityThread.java:5405) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:838) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605) 
    at dalvik.system.NativeStart.main(Native Method) 

這是MainActivity

public class MainActivity extends AppCompatActivity { 

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

    ViewPager pager = (ViewPager)findViewById(R.id.viewPager); 

    List<Fragment> list = new ArrayList<Fragment>(); 
    MyAdapter adapter = new MyAdapter(this.getFragmentManager(),list); 

    F f1 = new F(); 
    Bundle b1 = new Bundle(); 
    b1.putInt("img", R.drawable.one); 
    f1.setArguments(b1); 
    list.add(f1); 

    F f2 = new F(); 
    Bundle b2 = new Bundle(); 
    b2.putInt("img", R.drawable.two); 
    f2.setArguments(b2); 
    list.add(f2); 

    F f3 = new F(); 
    Bundle b3 = new Bundle(); 
    b3.putInt("img", R.drawable.three); 
    f3.setArguments(b3); 
    list.add(f3); 

    F f4 = new F(); 
    Bundle b4 = new Bundle(); 
    b4.putInt("img" , R.drawable.four); 
    f4.setArguments(b4); 
    list.add(f4); 

    F f5 = new F(); 
    Bundle b5 = new Bundle(); 
    b5.putInt("img" , R.drawable.five); 
    f5.setArguments(b5); 
    list.add(f5); 

    pager.setAdapter(adapter); 


    } 
} 

我的適配器代碼

package com.example.maysara_.pager; 

    import android.app.Fragment; 
    import android.app.FragmentManager; 
    import android.support.v13.app.FragmentPagerAdapter; 

    import java.util.List; 

    public class MyAdapter extends FragmentPagerAdapter 
    { 
    List<Fragment> list ; 


    public MyAdapter(FragmentManager fm , List<Fragment> list) { 
     super(fm); 
     this.list=list; 
    } 

    @Override 
    public Fragment getItem(int i) { 
     return list.get(i); 
    } 

    @Override 
    public int getCount() { 
     return list.size(); 
    } 
} 
+1

有你'導入正確MyAdapter'? – starkshang

+0

我是它的必要手動導入它,,, ??? 我想androidStudio導入它... – Maysara

+0

'NoClassDefFoundError:com.example.maysara_.pager.MyAdapter'。您需要包含/導入此類 –

回答

0

首先,在將它們定義到適配器之前,而不是之後定義您的Fragments。

public class MainActivity extends AppCompatActivity { 

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

    ViewPager pager = (ViewPager)findViewById(R.id.viewPager); 

    List<Fragment> list = new ArrayList<Fragment>(); 

    F f1 = new F(); 
    Bundle b1 = new Bundle(); 
    b1.putInt("img", R.drawable.one); 
    f1.setArguments(b1); 
    list.add(f1); 

    F f2 = new F(); 
    Bundle b2 = new Bundle(); 
    b2.putInt("img", R.drawable.two); 
    f2.setArguments(b2); 
    list.add(f2); 

    F f3 = new F(); 
    Bundle b3 = new Bundle(); 
    b3.putInt("img", R.drawable.three); 
    f3.setArguments(b3); 
    list.add(f3); 

    F f4 = new F(); 
    Bundle b4 = new Bundle(); 
    b4.putInt("img" , R.drawable.four); 
    f4.setArguments(b4); 
    list.add(f4); 

    F f5 = new F(); 
    Bundle b5 = new Bundle(); 
    b5.putInt("img" , R.drawable.five); 
    f5.setArguments(b5); 
    list.add(f5); 

    MyAdapter adapter = new MyAdapter(this.getFragmentManager(),list); 

    pager.setAdapter(adapter); 

    } 
} 

關於java.lang.NoClassDefFoundError,如果你的代碼,它只是在一個模塊檢查,如果這是你的問題相關: NoClassDefFoundError with Android Studio on Android 4

+0

@Maysara它有用嗎? – MiguelCatalan