折腾快一周,终于把flutter的代码嵌入到现有的android项目中了,现在记录一下,作为笔记。

1、首先需要3个项目,

一个是现有androidold项目。

一个是新建一个androiddemo项目,

一个是新建的flutter项目(也可以用module方式在androiddemo上创建flutter)。

新建一个androidnew项目,作为demo,写个最简单的java跳转flutter的例子,方便自己熟悉流程。

创建flutter的module的时候,你会发现,位置不重要,不一定是放在demo下面,为了方便,通常放在与android同一级的目录,比如demo目录:aaa/demo;flutter就放在:aaa/flutter,便于管理。

2、在官网上找到android跳转flutter的方法,地址:

https://flutter.cn/docs/development/add-to-app/android/add-flutter-screen ,

这个是中文翻译的,讲得很清楚。(这里我在网上搜索了半天,好多都没有讲清楚,最后发现有flutter官网有中文的,一下就看懂了)。

3、demo调试可以跳转到flutter以后,可以build AAR,androidstudio的message框中会出现:

共有4步,这4步操作,就是将aar嵌入键现有androidold项目的方法。

其中需要注意的是第二步中,需要修改的地方: url '$storageUrl/download.flutter.io'  修改为  url "http://download.flutter.io"

4、注意androidold项目中:

需要使用java1.8

需要使用androidx

需要在主app中依赖:api 'io.flutter:flutter_embedding_debug:1.0.0-5babba6c4d25fa237bbf755ab85c9a0c50b3c6ec'(这个非必须,我的项目是有很多module项目依赖的)

5、注意fluttersdk中需要修改3个配置文件:

 修改fiutter SDK中:flutter/packages/flutter_tools/gradle/resolve_dependencies.gradle

       flutter/packages/flutter_tools/gradle/aar_init_script.gradle

        flutter/packages/flutter_tools/gradle/flutter.gradle

        中的:https://storage.googleapis.com/download.flutter.io   

        替换为:url "http://download.flutter.io" (这里注意双引号,我大意了,浪费我1小时时间

6、在androidold项目中,添加跳转flutter的代码,完成嵌入。

 

 

 

 

 

 

 

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐