Excepción fatal: java.lang.NoClassDefFoundError: rt

Fatal Exception: java.lang.NoClassDefFoundError: rt at rs.(SourceFile:17) at android.support.v7.widget.RecyclerView.onSaveInstanceState(SourceFile:201) at android.view.View.dispatchSaveInstanceState(View.java:13651) at android.view.ViewGroup.dispatchFreezeSelfOnly(ViewGroup.java:2835) at android.support.v7.widget.RecyclerView.dispatchSaveInstanceState(SourceFile:220) at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2821) at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2821) at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2821) at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2821) at android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:2821) at android.view.View.saveHierarchyState(View.java:13634) at android.support.v4.app.FragmentManagerImpl.saveFragmentViewState(FragmentManager.java:2594) at android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:2615) at android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:2678) at android.support.v4.app.FragmentController.saveAllState(FragmentController.java:134) at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:571) at android.support.v7.app.AppCompatActivity.onSaveInstanceState(AppCompatActivity.java:509) at android.app.Activity.performSaveInstanceState(Activity.java:1229) at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1229) at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3390) at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3449) at android.app.ActivityThread.access$1200(ActivityThread.java:169) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1307) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:146) at android.app.ActivityThread.main(ActivityThread.java:5487) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) at dalvik.system.NativeStart.main(NativeStart.java) 

Puedo arreglar esto por la liberación de YouTubePlayer en onSavedInstanceState y onStop.

 @Nullable protected YouTubePlayer mUtPlayer; @Override public void onSaveInstanceState(Bundle outState) { /* release ut when home button pressed. */ if (mUtPlayer != null) { mUtPlayer.release(); } mUtPlayer = null; super.onSaveInstanceState(outState); } @Override public void onStop() { /* release ut when go to other fragment or back pressed */ if (mUtPlayer != null) { mUtPlayer.release(); } mUtPlayer = null; super.onStop(); } 

Para las personas que la solución de Razgriz no funciona, sólo tiene que añadir las mismas líneas en onPause en lugar de en onSaveInstanceState y onStop , e inicializar el YouTubePlayerFragment en onResume en lugar de en onCreate para estar disponible cada vez que la actividad está en primer plano y Lanzado cuando la aplicación va al fondo:

Tenga en cuenta que el código siempre se debe colocar después de los métodos super .

  @Override protected void onResume() { super.onResume(); YouTubePlayerFragment youTubePlayerFragment = (YouTubePlayerFragment) getFragmentManager().findFragmentById(R.id.youtubeFragmentView); youTubePlayerFragment.initialize(YouTubeDeveloperKey, this); } @Override protected void onPause() { super.onPause(); if (youTubePlayer != null) { youTubePlayer.release(); } youTubePlayer = null; } 

Sólo en caso de que la solución dada por encima no funcionó para usted, considere la siguiente, funciona! El truco aquí es evitar guardar el estado de todas las vistas relacionadas con YouTube. Seguramente la solución tiene sus inconvenientes, pero es mejor que la caída de la aplicación como sucedió con la mía:

 public interface ICallableOnView { void call(View view); } public static void recursiveCallOnView(View view, ICallableOnView callableOnView) { if (view != null) { if (view instanceof ViewGroup) { for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) { recursiveCallOnView(((ViewGroup) view).getChildAt(i), callableOnView); } } callableOnView.call(view); } } @Override public void onSaveInstanceState(Bundle outState) { // Disable view state saving to prevent saving states from youtube apk which cannot be restored. // This is to avoid the bug "java.lang.NoClassDefFoundError: rt at rs.<clinit>(SourceFile:17)" recursiveCallOnView(mViewHolder.youTubeVideoContainerLayout, new ICallableOnView() { @Override public void call(View view) { view.setSaveEnabled(false); } }); super.onSaveInstanceState(outState); } 

Espero que esto ayude a alguien, bendiciones para todos.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.