From bdd8d1e2b6a888f7a771b1e1e94e80bb24c7215f Mon Sep 17 00:00:00 2001 From: qinglong Date: Wed, 3 Jun 2026 07:00:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=E6=A8=A1=E5=9D=97APPBase=20?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=9C=80=E6=96=B0=E6=97=B6=E9=97=B4=E6=A0=87?= =?UTF-8?q?=E7=AD=BEappbase-v15.20.25?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.properties | 8 +++--- .../java/cc/winboll/studio/appbase/App.java | 27 +++++++++++++++---- libappbase/build.properties | 8 +++--- .../studio/libappbase/CrashHandler.java | 2 +- .../studio/libappbase/GlobalApplication.java | 13 +++++---- 5 files changed, 37 insertions(+), 21 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 149d6ee..a3eae15 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Wed Jun 03 06:03:05 HKT 2026 -stageCount=24 +#Wed Jun 03 06:52:38 HKT 2026 +stageCount=26 libraryProject=libappbase baseVersion=15.20 -publishVersion=15.20.23 +publishVersion=15.20.25 buildCount=0 -baseBetaVersion=15.20.24 +baseBetaVersion=15.20.26 diff --git a/appbase/src/main/java/cc/winboll/studio/appbase/App.java b/appbase/src/main/java/cc/winboll/studio/appbase/App.java index 9a19876..4666ea9 100644 --- a/appbase/src/main/java/cc/winboll/studio/appbase/App.java +++ b/appbase/src/main/java/cc/winboll/studio/appbase/App.java @@ -1,8 +1,11 @@ package cc.winboll.studio.appbase; +import cc.winboll.studio.libappbase.CrashHandler; import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.ToastUtils; -import cc.winboll.studio.libappbase.BuildConfig; +import cc.winboll.studio.libappbase.utils.CrashHandleNotifyUtils; +import java.io.PrintWriter; +import java.io.StringWriter; /** * @Author ZhanGSKen @@ -21,10 +24,24 @@ public class App extends GlobalApplication { */ @Override public void onCreate() { - super.onCreate(); - - // 初始化 Toast 工具类(传入应用全局上下文,确保 Toast 可在任意地方调用) - ToastUtils.init(getApplicationContext()); + try { + super.onCreate(); + + // 初始化 Toast 工具类(传入应用全局上下文,确保 Toast 可在任意地方调用) + ToastUtils.init(getApplicationContext()); + } catch (Throwable e) { + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + e.printStackTrace(pw); + pw.close(); + String stackTraceStr = sw.toString(); + CrashHandleNotifyUtils.handleUncaughtException( + this, + getPackageName(), + stackTraceStr, + CrashHandler.CrashActivity.class + ); + } } /** diff --git a/libappbase/build.properties b/libappbase/build.properties index 149d6ee..a3eae15 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Wed Jun 03 06:03:05 HKT 2026 -stageCount=24 +#Wed Jun 03 06:52:38 HKT 2026 +stageCount=26 libraryProject=libappbase baseVersion=15.20 -publishVersion=15.20.23 +publishVersion=15.20.25 buildCount=0 -baseBetaVersion=15.20.24 +baseBetaVersion=15.20.26 diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/CrashHandler.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/CrashHandler.java index bfdcf5f..dcd0aa9 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/CrashHandler.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/CrashHandler.java @@ -263,7 +263,7 @@ public final class CrashHandler { setContentView(contentView); getActionBar().setTitle(TITTLE); - getActionBar().setSubtitle(GlobalApplication.class.getSimpleName() + " Error"); + getActionBar().setSubtitle(GlobalApplication.getAppName(getApplicationContext()) + " Error"); } @Override diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalApplication.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalApplication.java index 1fc66d1..05df241 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalApplication.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalApplication.java @@ -6,12 +6,11 @@ import android.content.SharedPreferences; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; - +import android.util.Log; +import cc.winboll.studio.libappbase.utils.CrashHandleNotifyUtils; import java.io.PrintWriter; import java.io.StringWriter; -import cc.winboll.studio.libappbase.utils.CrashHandleNotifyUtils; - /** * @Author ZhanGSKen&豆包大模型 * @Date 2025/11/11 19:56 @@ -132,6 +131,7 @@ public class GlobalApplication extends Application { public void onCreate() { try { super.onCreate(); + // 初始化单例实例(确保在所有初始化操作前完成) sInstance = this; @@ -152,7 +152,7 @@ public class GlobalApplication extends Application { this, getPackageName(), stackTraceStr, - GlobalCrashActivity.class + CrashHandler.CrashActivity.class ); } } @@ -209,7 +209,7 @@ public class GlobalApplication extends Application { */ public static String getAppName(Context context) { if (context == null) { - LogUtils.w(TAG, "getAppName: 上下文为空,返回 null"); + Log.w(TAG, "getAppName: 上下文为空,返回 null"); return null; } PackageManager packageManager = context.getPackageManager(); @@ -225,8 +225,7 @@ public class GlobalApplication extends Application { return appName; } catch (NameNotFoundException e) { // 包名不存在(理论上不会发生,捕获异常避免崩溃) - LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); - //LogUtils.e(TAG, "获取应用名称失败:包名不存在", e); + Log.e(TAG, "获取应用名称失败:包名不存在", e); e.printStackTrace(); } return null;