[Android] Fix crash on the Android TV
Whenever the EmulationActivity crashes and the app gets back to the TvMainActivity, dolphin will crash tring to restor the mBrowseFragment since we don't save the adapter data in the bundle. This is quick hack to avoid the crash. The proper fix would be to save the adapter data in the bundle and restore it before restoring the fragment when the activity gets recreated. Crash Stacktrace: Process: org.dolphinemu.dolphinemu.debug, PID: 30353 java.lang.RuntimeException: Unable to start activity ComponentInfo{org.dolphinemu.dolphinemu.debug/org.dolphinemu.dolphinemu.ui.main.TvMainActivity}: java.lang.IllegalArgumentException: Invalid position 1 requested at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2691) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2752) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1461) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6120) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: java.lang.IllegalArgumentException: Invalid position 1 requested at android.support.v17.leanback.app.BrowseFragment.createMainFragment(BrowseFragment.java:509) at android.support.v17.leanback.app.BrowseFragment.replaceMainFragment(BrowseFragment.java:1454) at android.support.v17.leanback.app.BrowseFragment.setAdapter(BrowseFragment.java:764) at org.dolphinemu.dolphinemu.ui.main.TvMainActivity.buildRowsAdapter(TvMainActivity.java:183) at org.dolphinemu.dolphinemu.ui.main.TvMainActivity.onCreate(TvMainActivity.java:59) at android.app.Activity.performCreate(Activity.java:6664) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2644) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2752) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1461) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6120) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
This commit is contained in:
parent
eaa4565e63
commit
ed30caa3dd
|
@ -46,8 +46,11 @@ public final class TvMainActivity extends Activity implements MainView
|
||||||
setContentView(R.layout.activity_tv_main);
|
setContentView(R.layout.activity_tv_main);
|
||||||
|
|
||||||
final FragmentManager fragmentManager = getFragmentManager();
|
final FragmentManager fragmentManager = getFragmentManager();
|
||||||
mBrowseFragment = (BrowseFragment) fragmentManager.findFragmentById(
|
mBrowseFragment = new BrowseFragment();
|
||||||
R.id.fragment_game_list);
|
fragmentManager
|
||||||
|
.beginTransaction()
|
||||||
|
.add(R.id.content, mBrowseFragment, "BrowseFragment")
|
||||||
|
.commit();
|
||||||
|
|
||||||
// Set display parameters for the BrowseFragment
|
// Set display parameters for the BrowseFragment
|
||||||
mBrowseFragment.setHeadersState(BrowseFragment.HEADERS_ENABLED);
|
mBrowseFragment.setHeadersState(BrowseFragment.HEADERS_ENABLED);
|
||||||
|
@ -55,7 +58,6 @@ public final class TvMainActivity extends Activity implements MainView
|
||||||
mBrowseFragment.setBadgeDrawable(getResources().getDrawable(
|
mBrowseFragment.setBadgeDrawable(getResources().getDrawable(
|
||||||
R.drawable.ic_launcher, null));
|
R.drawable.ic_launcher, null));
|
||||||
mBrowseFragment.setBrandColor(getResources().getColor(R.color.dolphin_blue_dark));
|
mBrowseFragment.setBrandColor(getResources().getColor(R.color.dolphin_blue_dark));
|
||||||
|
|
||||||
buildRowsAdapter();
|
buildRowsAdapter();
|
||||||
|
|
||||||
mPresenter.onCreate();
|
mPresenter.onCreate();
|
||||||
|
|
|
@ -1,12 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/content"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<fragment
|
|
||||||
android:name="android.support.v17.leanback.app.BrowseFragment"
|
|
||||||
android:id="@+id/fragment_game_list"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"/>
|
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
Loading…
Reference in New Issue