NehaK
NehaK

Reputation: 2737

Recycler View crash when fragment is destroying

I am getting a crash each time i am closing app or changing tab :

FATAL EXCEPTION: main
   Process: com.pinmedia.mediaguide, PID: 30982
   java.lang.NoClassDefFoundError: rt
       at rs.<clinit>(SourceFile:17)
       at android.support.v7.widget.RecyclerView.onSaveInstanceState(SourceFile:201)
       at android.view.View.dispatchSaveInstanceState(View.java:12922)
       at android.view.ViewGroup.dispatchFreezeSelfOnly(ViewGroup.java:2763)
       at android.support.v7.widget.RecyclerView.dispatchSaveInstanceState(SourceFile:220)
       at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2749)
       at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2749)
       at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2749)
       at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2749)
       at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2749)
       at android.view.View.saveHierarchyState(View.java:12905)
       at android.support.v4.app.FragmentManagerImpl.saveFragmentViewState(FragmentManager.java:2594)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1378)
       at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1595)
       at android.support.v4.app.FragmentManagerImpl.dispatchDestroyView(FragmentManager.java:2943)
       at android.support.v4.app.Fragment.performDestroyView(Fragment.java:2414)
       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1381)
       at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)
       at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:753)
       at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2363)
       at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2149)
       at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2103)
       at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2013)
       at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:710)
       at android.os.Handler.handleCallback(Handler.java:733)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5584)
       at java.lang.reflect.Method.invokeNative(Native Method)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
       at dalvik.system.NativeStart.main(Native Method)

I am using Horizontal RecyclerView inside that fragment :

RecyclerView mRecyclerView = (RecyclerView) rootView.findViewById(R.id.itv_submenu_recycler_view);
// use a linear layout manager
mLayoutManager = new LinearLayoutManager(getActivity());
mLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
mRecyclerView.setLayoutManager(mLayoutManager);
mAdapter = new SubMenuItemsAdapter(subMenuTabChangeListener);
mRecyclerView.setAdapter(mAdapter);

and recycler view is

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.RecyclerView
    android:id="@+id/itv_submenu_recycler_view"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" />

and I am using following library for recyclerView :

compile 'com.android.support:support-v13:25.0.0'
compile 'com.android.support:appcompat-v7:25.3.0'
compile 'com.android.support:recyclerview-v7:25.3.+'

This issue is appearing on one phone (Kitkat devices) only. Please help me to solve this crash. Thanks

Upvotes: 0

Views: 363

Answers (1)

quantum apps
quantum apps

Reputation: 938

your using the support library 25.3.0, it can be that the phone where the crash on appears not has the latest google play services update on his phone.

to check for that

private void checkGooglePlayServices(){
    GoogleApiAvailability api = GoogleApiAvailability.getInstance();
    int code = api.isGooglePlayServicesAvailable(this);
    if (code == ConnectionResult.SUCCESS) {
        onActivityResult(REQUEST_GOOGLE_PLAY_SERVICES, Activity.RESULT_OK, null);
    } else if (api.isUserResolvableError(code) &&
            api.showErrorDialogFragment(this, code, REQUEST_GOOGLE_PLAY_SERVICES)) {
        // wait for onActivityResult call (see below)
    } else {

        Toast.makeText(this, api.getErrorString(code), Toast.LENGTH_LONG).show();
    }
}

and

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch(requestCode) {
        case REQUEST_GOOGLE_PLAY_SERVICES:
            if (resultCode == Activity.RESULT_OK) {
                loadData();
            }
            break;

        default:
            super.onActivityResult(requestCode, resultCode, data);
    }
}

what @wrkwrk sad could be a possibility but normally more phones would have problems then and not just one.

on another node try not to use the + indicator in Gradle, every time you try to build your app, Gradle has to check what the newest version is, and that only cost build-time.

Upvotes: 1

Related Questions