Flutter常见问题

本文介绍Flutter监控的常见问题。

业务代码中有依赖 WidgetsFlutterBinding.ensureInitialized初始化的操作,该如何处理?

SDK初始化方法支持传入beforeRunApp回调函数。beforeRunApp函数会在runApp之前调用,可以在AlibabaCloudRUM初始化时传入beforeRunApp并完成相关业务代码调用。示例如下:

AlibabaCloudRUM().start(
    MyApp(),
    beforeRunApp: () async =>
        {
          // WidgetsFlutterBinding.ensureInitialized() 需要手动调用
          WidgetsFlutterBinding.ensureInitialized(), 
          await Dio().request("https://xxxxx.yyy/zzz")
        },
);

编译 Android 时遇到 error: resource android:attr/lStar not found.,该如何处理?

你需要将 Android 项目的编译版本提升到 33 或更高。按照如下步骤操作:

  1. 打开 Flutter 项目中的文件:android/app/build.gradle

  2. 找到 android 闭包下的 compileSdkVersion。

  3. 将其修改为 33 或更高。

如果还有问题,需要在android/build.gradle文件中统一设置所有子项目的 compileSdkVersion,compileSdkVersion 建议修改为 33 或更高,如下:

// ... 其他配置

subprojects {
    afterEvaluate { project ->
        if (project.plugins.hasPlugin("com.android.application") ||
                project.plugins.hasPlugin("com.android.library")) {
            project.android {
                compileSdkVersion 33 // 需要根据实际项目需要进行调整,建议 33 或更高
            }
        }
    }
}

// ... 其他配置