flutter混合开发采坑之路

记录flutter混合开发流程

开始前的准备,我的开发环境,系统:window10,开发工具:androidstudio 2022。flutter版本如下:
在这里插入图片描述

1,如果你已经有项目了,可以在原项目中创建flutter module。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
2,项目创建完成如下:

也可以通过flutter命令创建项目:

flutter create 项目名字
flutter create --org com.example 项目名字
flutter create -t module --org com.example 组件名字

在这里插入图片描述
在setting.gradle中配置如下代码:注意这里的flutter_module是你创建的module组件的名字

setBinding(new Binding([gradle: this]))
evaluate(new File(
        settingsDir,
        'flutter_module/.android/include_flutter.groovy'
))

在这里插入图片描述
在app中引入flutter模块:

  implementation project(path: ':flutter')

在这里插入图片描述
发现在引入这三个库的时候

  path_provider: ^2.0.14
  path: ^1.8.2
  cached_network_image: ^3.2.3

出现下面的错误

Could not create task ':path_provider_android:generateDebugUnitTestConfig'.
this and base files have different roots: D:\android\workspace\idjApp\LoveReadDebug\idujing_flutter\.android\plugins_build_output\path_provider_android and C:\Users\DELL\AppData\Local\Pub\Cache\hosted\pub.dev\path_provider_android-2.0.24\android.

在这里插入图片描述原因及解决:

flutter系统包缓存文件夹位置冲突。我使用的电脑是Windows,因此默认系统包缓存路径是:C:\Users\DELL\AppData\Local\Pub\Cache\hosted\pub.dev\path_provider_android-2.0.24\android.

而项目必须和flutter系统包缓存路径在同一个盘里面,否则会报上面的错误。所以把项目移动C盘下任意目录就可以了。

3,启动优化

在项目中引用flutter模块打开页面的时候,第一次加载会很慢,处理办法是提前预加载。

在Application中加入以下代码:这里engine_id就是预加载的模块id

        mFlutterEngine = new FlutterEngine(this);
        mFlutterEngine.getDartExecutor().executeDartEntrypoint(DartExecutor.DartEntrypoint.createDefault());
        FlutterEngineCache.getInstance().put("engine_id", mFlutterEngine);

不要忘记在onTerminate中进行销毁

    @Override
    public void onTerminate() {
        mFlutterEngine.destroy();
        super.onTerminate();
    }

在android中打开flutter模块代码如下:

getContext().startActivity(FlutterActivity.withCachedEngine("engine_id").build(getContext()));
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值