1

I have a next code:

import android.support.v4.app.Fragment; 
public class HomeFragment extends Fragment{
...
private class TabAdapter extends FragmentPagerAdapter {
        @Override
        public Fragment getItem(@Tab int position) {
            switch (position) {
                case TAB1:
                    return SearchFragment.newInstance();
                ...
            }
        }
}
...
}

#

import android.location.Location;
import android.os.Bundle; 
import android.widget.AbsListView;
import android.widget.ListView;
public class SearchFragment extends Fragment{
...
        public static SearchFragment newInstance() {
            SearchFragment fragment = new SearchFragment ();
            return fragment;
        }
        private class C implements ListView.OnScrollListener{
        ...
        }
        @Override
        public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
            super.onViewCreated(view, savedInstanceState);

            C c = new C();
        }
...
}

When I execute this code in Android 4.3 (<5) I get an error java.lang.NoClassDefFoundError: xx.xx.SearchFragment $C

In Android 5 and 6 all Ok

Logcat output:

FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: xx.xx.SearchFragment$C
    at xx.xx.HomeFavoriteFragment.<init>(SearchFragment.java:170)
    at xx.xx.SearchFragment.newInstance(SearchFragment.java:43)
    at xx.xx.HomeFragment.<init>(HomeFragment.java:344)
    at xx.xx.HomeFragment.newInstance(HomeFragment.java:72) 
    at com.google.android.gms.common.internal.zzk.zzk(Unknown Source) 
dr_yand
  • 171
  • 2
  • 11

2 Answers2

1

Try importing the support fragment in SearchFragment.java like this:

import android.support.v4.app.Fragment;

It could be that compiler maybe using android.app.Fragment by default.

Yogesh Umesh Vaity
  • 41,009
  • 21
  • 145
  • 105
1

The solution to this error: add compile 'com.android.support:multidex:1.0.0'

Android studio java.lang.NoClassDefFoundError

Community
  • 1
  • 1
dr_yand
  • 171
  • 2
  • 11