1.3.21.3.2
Android APK Release / Build Android APK (push) Successful in 55m29s

This commit is contained in:
2026-05-26 16:32:18 +08:00
parent 546cef5ba6
commit 17673b2862
89 changed files with 24098 additions and 272 deletions
+36 -5
View File
@@ -2,6 +2,7 @@ import 'dart:convert';
import 'dart:io';
import 'dart:ui';
import 'package:cloudreve4_flutter/core/utils/app_logger.dart';
import 'package:logger/logger.dart' show Level;
import 'package:cloudreve4_flutter/presentation/widgets/desktop_title_bar.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
@@ -11,6 +12,7 @@ import 'package:media_kit/media_kit.dart';
import 'package:oktoast/oktoast.dart';
import 'package:window_manager/window_manager.dart';
import 'config/app_config.dart';
import 'core/constants/storage_keys.dart';
import 'presentation/providers/auth_provider.dart';
import 'presentation/providers/file_manager_provider.dart';
import 'presentation/providers/navigation_provider.dart';
@@ -19,9 +21,11 @@ import 'presentation/providers/download_manager_provider.dart';
import 'presentation/providers/user_setting_provider.dart';
import 'presentation/providers/admin_provider.dart';
import 'presentation/providers/quick_access_provider.dart';
import 'presentation/providers/sync_provider.dart';
import 'presentation/providers/theme_provider.dart';
import 'services/upload_service.dart';
import 'services/api_service.dart';
import 'services/storage_service.dart';
import 'services/server_service.dart';
import 'services/cache_manager_service.dart';
import 'services/avatar_cache_service.dart';
@@ -29,12 +33,42 @@ import 'core/utils/video_fullscreen.dart';
import 'services/desktop_service.dart';
import 'router/app_router.dart';
import 'presentation/widgets/toast_helper.dart';
import 'presentation/widgets/update_prompt.dart';
import 'src/rust/frb_generated.dart' show RustSyncApi;
final RouteObserver<PageRoute> routeObserver = RouteObserver<PageRoute>();
Level _parseLogLevel(String level) {
return switch (level) {
'error' => Level.error,
'warning' => Level.warning,
'info' => Level.info,
'debug' => Level.debug,
'trace' => Level.trace,
_ => Level.info,
};
}
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await AppLogger.init();
final savedLevel = await StorageService.instance.getString(
StorageKeys.logLevel,
);
if (savedLevel != null) {
final level = _parseLogLevel(savedLevel);
AppLogger.setLevel(level);
}
AppLogger.i("应用启动,日志系统就绪");
try {
await RustSyncApi.init();
AppLogger.i("RustSyncApi 初始化成功");
} catch (e) {
AppLogger.e("RustSyncApi 初始化失败: $e");
}
// 捕获 flutter_cache_manager 在 Windows 上删除缓存文件时的文件占用异常
// 该异常是后台异步抛出的,无法通过 try-catch 拦截,需绑定错误处理器静默忽略
FlutterError.onError = (details) {
@@ -51,10 +85,6 @@ void main() async {
return false;
};
// 初始化日志
await AppLogger.init();
AppLogger.i("应用启动,日志系统就绪");
// 桌面端初始化窗口管理和系统托盘
if (Platform.isWindows || Platform.isLinux) {
// 实例化 FlutterSingleInstance 获取单实例句柄
@@ -156,6 +186,7 @@ class CloudreveApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => UserSettingProvider()),
ChangeNotifierProvider(create: (_) => AdminProvider()),
ChangeNotifierProvider(create: (_) => QuickAccessProvider()..load()),
ChangeNotifierProvider(create: (_) => SyncProvider()),
],
child: const AppView(),
);
@@ -215,7 +246,7 @@ class AppView extends StatelessWidget {
currentWidget = FilterQualityWidget(child: currentWidget);
}
// 添加全局错误处理
return ErrorHandler(child: currentWidget);
return UpdatePrompt(child: ErrorHandler(child: currentWidget));
},
),
);