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)
10
A
回答
8
我通过在onSavedInstanceState和onStop上发布YouTubePlayer来解决此问题。
@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();
}
3
对于人们Razgriz的解决方案不起作用,只是添加同一线而不是onSaveInstanceState
和onStop
,并在onResume
初始化YouTubePlayerFragment
,而不是在onCreate
因此这将是每一个可用时间活动在前台,并在应用程序转到后台时发布:
请注意,代码应始终放在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;
}
+0
此修复程序会导致玩家在每次应用程序从所有设备上的onPause()返回时都抛出内部错误(我甚至没有收到此问题)。 @Razgriz Bill Wong的解决方案也是如此。 – Abbas
0
以防万一上面给出的解决方案不适合你,考虑下一个,它的工作原理!这里的诀窍是避免保存与YouTube相关的所有视图的状态。当然该解决方案有它的缺点,但它比应用程序崩溃就像我的事更好:
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);
}
希望这有助于别人,祝福所有。
相关问题
- 1. 致命异常
- 2. 致命异常
- 3. AsyncTask致命异常#!
- 4. 致命异常onItemSelected
- 5. 致命异常:java.lang.NoClassDefFoundError:javax.activation.DataHandler
- 6. Fragment.instantiate致命异常
- 7. 致命异常:java.lang.IllegalStateException:致命异常在Scheduler.Worker线程上抛出
- 8. AndEngine:在GLThread致命异常:IndexOutOfBoundsException异常
- 9. 致命异常:主要android.os.NetworkOnMainThreadException
- 10. 致命的异常:AsyncTask#1
- 11. PhpMailer投掷致命异常
- 12. AsyncTask致命异常#1
- 13. doInBackground()中的致命异常
- 14. Android:GoogleAuthUtil中的致命异常
- 15. 发生致命异常
- 16. Android:致命异常主要
- 17. Java XHTML Doclet:致命异常
- 18. 致命异常:主java.lang.ArrayIndexOutOfBoundsException:
- 19. buttonConnectOnClickListener,致命异常:AsyncTask#1
- 20. 致命异常:主要android
- 21. Android admob致命异常
- 22. 致命的异常与getWritableDatabase
- 23. 致命异常:主要
- 24. 获取致命异常
- 25. 致命异常:AsyncTask#1 2
- 26. 致命异常asynctask#2 doInBackground
- 27. 非致命IronPython NumPy异常
- 28. 致命异常:main java.lang.RuntimeException
- 29. 致命异常:主要android
- 30. Android Studio:致命异常
粘贴你的代码发生错误 –
你的应用程序在棉花糖或更高版本中工作 –
我不知道它在哪里发生。只需在织物crashlytics中获取此崩溃日志。 –