Compare commits

...

8 Commits

5 changed files with 37 additions and 21 deletions

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Wed Jun 03 06:03:05 HKT 2026 #Wed Jun 03 06:52:38 HKT 2026
stageCount=24 stageCount=26
libraryProject=libappbase libraryProject=libappbase
baseVersion=15.20 baseVersion=15.20
publishVersion=15.20.23 publishVersion=15.20.25
buildCount=0 buildCount=0
baseBetaVersion=15.20.24 baseBetaVersion=15.20.26

View File

@@ -1,8 +1,11 @@
package cc.winboll.studio.appbase; package cc.winboll.studio.appbase;
import cc.winboll.studio.libappbase.CrashHandler;
import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.GlobalApplication;
import cc.winboll.studio.libappbase.ToastUtils; 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<zhangsken@qq.com> * @Author ZhanGSKen<zhangsken@qq.com>
@@ -21,10 +24,24 @@ public class App extends GlobalApplication {
*/ */
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); try {
super.onCreate();
// 初始化 Toast 工具类(传入应用全局上下文,确保 Toast 可在任意地方调用) // 初始化 Toast 工具类(传入应用全局上下文,确保 Toast 可在任意地方调用)
ToastUtils.init(getApplicationContext()); 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
);
}
} }
/** /**

View File

@@ -1,8 +1,8 @@
#Created by .winboll/winboll_app_build.gradle #Created by .winboll/winboll_app_build.gradle
#Wed Jun 03 06:03:05 HKT 2026 #Wed Jun 03 06:52:38 HKT 2026
stageCount=24 stageCount=26
libraryProject=libappbase libraryProject=libappbase
baseVersion=15.20 baseVersion=15.20
publishVersion=15.20.23 publishVersion=15.20.25
buildCount=0 buildCount=0
baseBetaVersion=15.20.24 baseBetaVersion=15.20.26

View File

@@ -263,7 +263,7 @@ public final class CrashHandler {
setContentView(contentView); setContentView(contentView);
getActionBar().setTitle(TITTLE); getActionBar().setTitle(TITTLE);
getActionBar().setSubtitle(GlobalApplication.class.getSimpleName() + " Error"); getActionBar().setSubtitle(GlobalApplication.getAppName(getApplicationContext()) + " Error");
} }
@Override @Override

View File

@@ -6,12 +6,11 @@ import android.content.SharedPreferences;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException;
import android.util.Log;
import cc.winboll.studio.libappbase.utils.CrashHandleNotifyUtils;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
import cc.winboll.studio.libappbase.utils.CrashHandleNotifyUtils;
/** /**
* @Author ZhanGSKen&豆包大模型<zhangsken@qq.com> * @Author ZhanGSKen&豆包大模型<zhangsken@qq.com>
* @Date 2025/11/11 19:56 * @Date 2025/11/11 19:56
@@ -132,6 +131,7 @@ public class GlobalApplication extends Application {
public void onCreate() { public void onCreate() {
try { try {
super.onCreate(); super.onCreate();
// 初始化单例实例(确保在所有初始化操作前完成) // 初始化单例实例(确保在所有初始化操作前完成)
sInstance = this; sInstance = this;
@@ -152,7 +152,7 @@ public class GlobalApplication extends Application {
this, this,
getPackageName(), getPackageName(),
stackTraceStr, stackTraceStr,
GlobalCrashActivity.class CrashHandler.CrashActivity.class
); );
} }
} }
@@ -209,7 +209,7 @@ public class GlobalApplication extends Application {
*/ */
public static String getAppName(Context context) { public static String getAppName(Context context) {
if (context == null) { if (context == null) {
LogUtils.w(TAG, "getAppName: 上下文为空,返回 null"); Log.w(TAG, "getAppName: 上下文为空,返回 null");
return null; return null;
} }
PackageManager packageManager = context.getPackageManager(); PackageManager packageManager = context.getPackageManager();
@@ -225,8 +225,7 @@ public class GlobalApplication extends Application {
return appName; return appName;
} catch (NameNotFoundException e) { } catch (NameNotFoundException e) {
// 包名不存在(理论上不会发生,捕获异常避免崩溃) // 包名不存在(理论上不会发生,捕获异常避免崩溃)
LogUtils.d(TAG, e, Thread.currentThread().getStackTrace()); Log.e(TAG, "获取应用名称失败:包名不存在", e);
//LogUtils.e(TAG, "获取应用名称失败:包名不存在", e);
e.printStackTrace(); e.printStackTrace();
} }
return null; return null;