Monday, 2 September 2013

java.lang.NoClassDefFoundError, Android Studio 2.6.0, Inner class,

java.lang.NoClassDefFoundError, Android Studio 2.6.0, Inner class,

I got the following error at runtime: (All code is presented in the end.)
java.lang.NoClassDefFoundError:
se.domain.climbsweden.Area$MyFragmentPagerAdapter
at the following line:
this.mPagerAdapter = new MyFragmentPagerAdapter(f, fragments);
As I understand the error comes from when a class is unavailable at
runtime but was available in compiling. Does it work in the same way in
Android? I do find this strange because it is a inner class. I am using
Android Studio 2.6.0 .
The goal for the code is to implement swiping in Android using a viewpager
and the native activity. Thereof the use of v13 support package.
Could the error be related to a incorrect imported support-library?
Thanks in advance. These kind of error takes the motivation out of me!
import java.util.List;
import java.util.Vector;
import android.app.Activity;
import android.app.FragmentManager;
import android.os.Bundle;
import android.app.Fragment;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
public class Area extends Activity implements AreaFact.FactListener,
AreaWall.WallListener {
private MyFragmentPagerAdapter mPagerAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_area);
this.initialisePaging();
}
/**
* Initialise the fragments to be paged
*/
private void initialisePaging() {
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, AreaFact.class.getName()));
fragments.add(Fragment.instantiate(this, AreaWall.class.getName()));
FragmentManager f = super.getFragmentManager();
this.mPagerAdapter = new MyFragmentPagerAdapter(f, fragments);
//
ViewPager pager = (ViewPager)super.findViewById(R.id.area_pager);
pager.setAdapter(this.mPagerAdapter);
}
private class MyFragmentPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public MyFragmentPagerAdapter(FragmentManager fm, List<Fragment>
fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
}

No comments:

Post a Comment