From 003e1ccca2e9e41e9bb367ee78cea43bc0fb5854 Mon Sep 17 00:00:00 2001 From: LaizyBoy Date: Wed, 20 May 2026 03:09:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B0=83=E8=AF=95=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=BA=E5=BA=8F=E5=8F=8A?= =?UTF-8?q?LogUtils=E7=A9=BA=E6=8C=87=E9=92=88=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - GlobalApplication: 调整restoreDebugStatus在initCoreComponents之前执行,确保调试标志先恢复再初始化日志 - LogUtils: init/setLogLevel/setTAG方法增加未初始化保护 - LogViewThread: getLogCacheDir空判断防止NPE --- appbase/build.properties | 4 ++-- libappbase/build.properties | 4 ++-- .../studio/libappbase/GlobalApplication.java | 5 ++--- .../java/cc/winboll/studio/libappbase/LogUtils.java | 13 +++++++++++++ .../cc/winboll/studio/libappbase/LogViewThread.java | 8 +++++++- 5 files changed, 26 insertions(+), 8 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index 8054208..6dd83b3 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 19 18:49:18 GMT 2026 +#Wed May 20 03:05:29 CST 2026 stageCount=18 libraryProject=libappbase baseVersion=15.20 publishVersion=15.20.17 -buildCount=19 +buildCount=24 baseBetaVersion=15.20.18 diff --git a/libappbase/build.properties b/libappbase/build.properties index 8054208..6dd83b3 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue May 19 18:49:18 GMT 2026 +#Wed May 20 03:05:29 CST 2026 stageCount=18 libraryProject=libappbase baseVersion=15.20 publishVersion=15.20.17 -buildCount=19 +buildCount=24 baseBetaVersion=15.20.18 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 2614c57..e03ac72 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalApplication.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/GlobalApplication.java @@ -129,11 +129,10 @@ public class GlobalApplication extends Application { // 初始化单例实例(确保在所有初始化操作前完成) sInstance = this; + restoreDebugStatus(); // 初始化基础组件(日志、崩溃处理、Toast) initCoreComponents(); - // 恢复/初始化调试模式状态(从本地文件读取,无文件则默认关闭调试) - restoreDebugStatus(); - // 新增:初始化服务器地址(从 SP 读取到内存,提高后续访问效率) + // 初始化服务器地址(从 SP 读取到内存,提高后续访问效率) initWinbollHost(); LogUtils.d(TAG, "GlobalApplication 初始化完成,单例实例已创建"); diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/LogUtils.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/LogUtils.java index 3b9a09f..e2124da 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/LogUtils.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/LogUtils.java @@ -71,6 +71,9 @@ public class LogUtils { } public static void init(final Context context, final LOG_LEVEL logLevel) { + if (!GlobalApplication.isDebugging()) { + return; + } Log.d(TAG, "init 执行日志工具初始化"); _mContext = context; @@ -247,6 +250,9 @@ public class LogUtils { } public static void setTAGListEnable(final String tag, final boolean isEnable) { + if (!_IsInited) { + return; + } final Iterator> iterator = mapTAGList.entrySet().iterator(); while (iterator.hasNext()) { final Map.Entry entry = iterator.next(); @@ -260,6 +266,9 @@ public class LogUtils { } public static void setALlTAGListEnable(final boolean isEnable) { + if (!_IsInited) { + return; + } for (final Map.Entry entry : mapTAGList.entrySet()) { entry.setValue(isEnable); } @@ -269,6 +278,10 @@ public class LogUtils { // ====================== 日志级别控制 ====================== public static void setLogLevel(final LOG_LEVEL logLevel) { + if (_mLogUtilsBean == null) { + Log.d(TAG, "setLogLevel LogUtils未初始化,忽略设置日志级别"); + return; + } _mLogUtilsBean.setLogLevel(logLevel); _mLogUtilsBean.saveBeanToFile(_mfLogUtilsBeanFile.getPath(), _mLogUtilsBean); } diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/LogViewThread.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/LogViewThread.java index 6fe218f..2c4f805 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/LogViewThread.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/LogViewThread.java @@ -1,6 +1,7 @@ package cc.winboll.studio.libappbase; import android.os.FileObserver; +import java.io.File; import java.lang.ref.WeakReference; /** @@ -54,7 +55,12 @@ public class LogViewThread extends Thread { // 调试状态进行日志输出任务 if (GlobalApplication.isDebugging()) { // 获取日志缓存目录路径(从 LogUtils 统一获取,确保路径一致性) - String logDirPath = LogUtils.getLogCacheDir().getPath(); + File logDir = LogUtils.getLogCacheDir(); + if (logDir == null) { + LogUtils.d(TAG, "日志缓存目录未初始化,线程退出"); + return; + } + String logDirPath = logDir.getPath(); LogUtils.d(TAG, "启动日志文件监听,监听目录:" + logDirPath); // 初始化日志文件监听器(监听目标目录的文件事件)