From 80e53f3ae26a5fecdb3a0b3c81fd7a7684bfbbe2 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 24 Nov 2022 17:35:52 +0800 Subject: [PATCH] Fix crash --- .../fongmi/android/tv/ui/activity/DetailActivity.java | 2 ++ .../com/fongmi/android/tv/ui/activity/LiveActivity.java | 2 ++ .../main/java/com/fongmi/android/tv/api/SoLoader.java | 9 +++++++++ 3 files changed, 13 insertions(+) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 4e13dd2c9..f67ae1be7 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -21,6 +21,7 @@ import androidx.viewbinding.ViewBinding; import com.fongmi.android.tv.App; import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.ApiConfig; +import com.fongmi.android.tv.api.SoLoader; import com.fongmi.android.tv.bean.History; import com.fongmi.android.tv.bean.Keep; import com.fongmi.android.tv.bean.Parse; @@ -470,6 +471,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis } private void onPlayer() { + if (SoLoader.isFail()) return; int index = Prefers.getPlayer(); CharSequence[] array = ResUtil.getStringArray(R.array.select_player); Prefers.putPlayer(index = index == array.length - 1 ? 0 : ++index); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index 16bf0fe64..e14403a98 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -17,6 +17,7 @@ import androidx.viewbinding.ViewBinding; import com.fongmi.android.tv.App; import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.LiveConfig; +import com.fongmi.android.tv.api.SoLoader; import com.fongmi.android.tv.bean.Channel; import com.fongmi.android.tv.bean.Epg; import com.fongmi.android.tv.bean.Group; @@ -270,6 +271,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick } private void onPlayer() { + if (SoLoader.isFail()) return; int index = Prefers.getPlayer(); CharSequence[] array = ResUtil.getStringArray(R.array.select_player); Prefers.putPlayer(index = index == array.length - 1 ? 0 : ++index); diff --git a/app/src/main/java/com/fongmi/android/tv/api/SoLoader.java b/app/src/main/java/com/fongmi/android/tv/api/SoLoader.java index 2a5ff0a0e..8e86655a7 100644 --- a/app/src/main/java/com/fongmi/android/tv/api/SoLoader.java +++ b/app/src/main/java/com/fongmi/android/tv/api/SoLoader.java @@ -5,6 +5,7 @@ import com.fongmi.android.tv.R; import com.fongmi.android.tv.net.OKHttp; import com.fongmi.android.tv.utils.FileUtil; import com.fongmi.android.tv.utils.Notify; +import com.fongmi.android.tv.utils.Prefers; import java.io.File; @@ -17,6 +18,8 @@ public class SoLoader { private static final String exo = "libexo-" + exoVer + ".so"; private static final String ijk = "libijk-" + ijkVer + ".so"; + private boolean fail; + private static class Loader { static volatile SoLoader INSTANCE = new SoLoader(); } @@ -25,6 +28,10 @@ public class SoLoader { return Loader.INSTANCE; } + public static boolean isFail() { + return get().fail; + } + public void load() { App.execute(() -> checkSo(exo)); App.execute(() -> checkSo(ijk)); @@ -38,7 +45,9 @@ public class SoLoader { System.load(file.getAbsolutePath()); } catch (Throwable e) { App.post(() -> Notify.show(R.string.error_so_load)); + Prefers.putPlayer(0); e.printStackTrace(); + fail = true; } }