flutter_boost icon indicating copy to clipboard operation
flutter_boost copied to clipboard

[Bug]: 可以出个兼容 flutter 3.29.0的demo

Open marchlqq opened this issue 10 months ago • 11 comments

请描述遇到的问题,以及您所期望的正确的结果

可以出个兼容 flutter 3.29.0的demo

请说明如何操作会遇到上述问题

No response

在下面填入关键复现代码

复现的平台

Both

Flutter SDK版本

3.29.0

FlutterBoost版本

5.0.1

是否延迟初始化FlutterBoost

No

解决方案

marchlqq avatar Feb 26 '25 09:02 marchlqq

@joechan-cq @NonNull io.flutter.plugin.common.PluginRegistry.Registrar registrar) { ^ 符号: 类 Registrar 位置: 接口 PluginRegistry  3.29,那边删除了这个类,很多库都用不了。

marchlqq avatar Feb 27 '25 02:02 marchlqq

按照以下步骤适配Flutter 3.29:

  1. FlutterMain.findAppBundlePath()改用FlutterInjector.instance().flutterLoader().findAppBundlePath()代替;
  2. extends FlutterApplication改为extends Application,并在onCreate中调用FlutterInjector.instance().flutterLoader().startInitialization(this);
  3. PluginRegistry相关的函数直接删除即可。

joechan-cq avatar Mar 03 '25 07:03 joechan-cq

按照以下步骤适配Flutter 3.29:

  1. FlutterMain.findAppBundlePath()改用FlutterInjector.instance().flutterLoader().findAppBundlePath()代替;
  2. extends FlutterApplication改为extends Application,并在onCreate中调用FlutterInjector.instance().flutterLoader().startInitialization(this);
  3. PluginRegistry相关的函数直接删除即可。

您好,我刚开始接触 Flutter,编译项目时提示 FlutterMain 不存在,我看这个 FlutterMain 在 1.12 版本就被废弃了,为啥都 3.29 了还留在 FlutterBoost 中?

oOJohn6Oo avatar Mar 12 '25 05:03 oOJohn6Oo

按照以下步骤适配Flutter 3.29:

  1. FlutterMain.findAppBundlePath()改用FlutterInjector.instance().flutterLoader().findAppBundlePath()代替;
  2. extends FlutterApplication改为extends Application,并在onCreate中调用FlutterInjector.instance().flutterLoader().startInitialization(this);
  3. PluginRegistry相关的函数直接删除即可。

您好,我刚开始接触 Flutter,编译项目时提示 FlutterMain 不存在,我看这个 FlutterMain 在 1.12 版本就被废弃了,为啥都 3.29 了还留在 FlutterBoost 中?

为了适配多个Flutter SDK版本,未必会对废弃的API进行替换。当然支持的最低版本提高后,也没有进行替换,多半是忘了。

joechan-cq avatar Mar 12 '25 07:03 joechan-cq

按照以下步骤适配Flutter 3.29:

  1. FlutterMain.findAppBundlePath()改用FlutterInjector.instance().flutterLoader().findAppBundlePath()代替;
  2. extends FlutterApplication改为extends Application,并在onCreate中调用FlutterInjector.instance().flutterLoader().startInitialization(this);
  3. PluginRegistry相关的函数直接删除即可。

不出一个适配版本吗?

marchlqq avatar Mar 17 '25 06:03 marchlqq

按照以下步骤适配Flutter 3.29:

  1. FlutterMain.findAppBundlePath()改用FlutterInjector.instance().flutterLoader().findAppBundlePath()代替;
  2. extends FlutterApplication改为extends Application,并在onCreate中调用FlutterInjector.instance().flutterLoader().startInitialization(this);
  3. PluginRegistry相关的函数直接删除即可。

不出一个适配版本吗?

我并没有发布和分支管理的权限

joechan-cq avatar Mar 18 '25 04:03 joechan-cq

按照以下步骤适配Flutter 3.29:

  1. FlutterMain.findAppBundlePath()改用FlutterInjector.instance().flutterLoader().findAppBundlePath()代替;
  2. extends FlutterApplication改为extends Application,并在onCreate中调用FlutterInjector.instance().flutterLoader().startInitialization(this);
  3. PluginRegistry相关的函数直接删除即可。

按您这个方法试了一下,别的没问题,但是涉及 MethodChannel 的部分都无法工作,无论是使用 BoostChannel 还是自己创建的MethodChannel

Sunshow avatar Apr 19 '25 11:04 Sunshow

以下步骤车载Flutter 3.29:

  1. FlutterMain.findAppBundlePath()改用FlutterInjector.instance().flutterLoader().findAppBundlePath()代替;
  2. extends FlutterApplication原来extends Application,并在onCreate中调用FlutterInjector.instance().flutterLoader().startInitialization(this);
  3. PluginRegistry相关的函数直接删除即可。

按您这个方法尝试一下,其他没问题,但是涉及 MethodChannel 的部分都无法工作,无论是使用 BoostChannel 还是自己创建的 MethodChannel

这个问题解决了吗?

wyq0918dev avatar Jul 05 '25 07:07 wyq0918dev

按照以下步骤适配Flutter 3.29:

  1. FlutterMain.findAppBundlePath()改用FlutterInjector.instance().flutterLoader().findAppBundlePath()代替;
  2. extends FlutterApplication改为extends Application,并在onCreate中调用FlutterInjector.instance().flutterLoader().startInitialization(this);
  3. PluginRegistry相关的函数直接删除即可。

按您这个方法试了一下,别的没问题,但是涉及 MethodChannel 的部分都无法工作,无论是使用 BoostChannel 还是自己创建的MethodChannel

我按照这位老哥的方法修改了FlutterBoost.java, 测试 battery_plus 插件 MethodChannel 通讯正常, 过程中出现一次通信不正常的现象, 是我没有Sync Gradle导致, Sync后重新运行后一切正常. 因为项目需要用到flutter_boost, 打算稍后提交pr修复.

wyq0918dev avatar Jul 05 '25 07:07 wyq0918dev

按照以下步骤适配Flutter 3.29:

  1. FlutterMain.findAppBundlePath()改用FlutterInjector.instance().flutterLoader().findAppBundlePath()代替;
  2. extends FlutterApplication改为extends Application,并在onCreate中调用FlutterInjector.instance().flutterLoader().startInitialization(this);
  3. PluginRegistry相关的函数直接删除即可。

按您这个方法试了一下,别的没问题,但是涉及 MethodChannel 的部分都无法工作,无论是使用 BoostChannel 还是自己创建的MethodChannel

我按照这位老哥的方法修改了FlutterBoost.java, 测试 battery_plus 插件 MethodChannel 通讯正常, 过程中出现一次通信不正常的现象, 是我没有Sync Gradle导致, Sync后重新运行后一切正常. 因为项目需要用到flutter_boost, 打算稍后提交pr修复.

老哥直接发PR上来吧 官方不合别人也可以用,我看这项目官方已经是弃坑了

Sunshow avatar Jul 05 '25 13:07 Sunshow

按照以下步骤适配Flutter 3.29:

  1. FlutterMain.findAppBundlePath()改用FlutterInjector.instance().flutterLoader().findAppBundlePath()代替;
  2. extends FlutterApplication改为extends Application,并在onCreate中调用FlutterInjector.instance().flutterLoader().startInitialization(this);
  3. PluginRegistry相关的函数直接删除即可。

按您这个方法试了一下,别的没问题,但是涉及 MethodChannel 的部分都无法工作,无论是使用 BoostChannel 还是自己创建的MethodChannel

我按照这位老哥的方法修改了FlutterBoost.java, 测试 battery_plus 插件 MethodChannel 通讯正常, 过程中出现一次通信不正常的现象, 是我没有Sync Gradle导致, Sync后重新运行后一切正常. 因为项目需要用到flutter_boost, 打算稍后提交pr修复.

老哥直接发PR上来吧 官方不合别人也可以用,我看这项目官方已经是弃坑了

我已经修复了,也提交了pr的请求,就等提交pr了, 你可以先用我修复的fork:

  flutter_boost:
    git:
        url: 'https://github.com/wyq0918dev/flutter_boost.git'
        ref: 'f3228638f68df7fd1caea3ffe733736e7cd7a365'

wyq0918dev avatar Jul 05 '25 14:07 wyq0918dev