android嵌入前端,Flutter与Android的混合开发(1)如何在现有Android项目里嵌入Flutter Module...

全部源码已上传github

1.如何在现有Android项目里嵌入Flutter Module

1. 用Android Studio新建一个Android项目,我们起名叫hyBridAndroid

75c81b5f2dd358b3dd08a821de34a8f0.png

2. 然后关闭项目,创建一个新目录,这里我们起名叫HyBrid

然后在HyBrid目录下执行命令flutter create -t module flutter_lib(注意这里只能命令行创建,Android Studio无法在Android项目里创建Flutter Module),再把刚才创建的Android项目放到这个目录里,现在是这样的结构

46c60e3b17fb5ac22eecc6b802ea8b0f.png

3. Android Studio打开hyBridAndroid项目,然后添加依赖

本地依赖:

对于Android的本地依赖,主要是由include_flutter.groovy和flutter.gradle这两个脚本负责Flutter的本地依赖和产物构建

在settings.gradle中注入include_flutter.groovy脚本

在需要依赖的module中build.gradle添加project(':flutter')依赖

代码如下所示

include ':app'

//网上好多博客是这样写的,注意有可能会出现坑,一会会说到

setBinding(new Binding([gradle: this]))

evaluate(new File(settingsDir.parentFile, 'flutter_lib/.android/include_flutter.groovy'))

复制代码

然后在Android原生项目中的app中的build.gradle文件中添加依赖库

implementation project(':flutter')

复制代码

操作到这里以后,我们的Android Studio是这样的目录结构了

f86608af663d0a945403af2890b62d1e.png

有可能会出现坑

Android 开发者很容易误以为集成 Flutter Module 就像以前 Android 工程集成 Module一样,所以按照这种思路,执行依赖 Sync 的时候就会出现include\_flutter.groovy 相关文件丢失问题。解决这种问题两种思路,第一种情况,本质就是你的配置错了,官方 wiki 让你将 flutter_module 放在 Android 工程的同级目录下,而不是 Android 工程目录下。想一下这种问题为什么会出现,主要就是一些不好的文章翻译不正确导致的问题。

注意

如果你的项目中buildTypes有release,preview,debug……等等,需要在添加下面代码

buildTypes {

release {

}

preview {

//关键代码,release, debug为library中已有buildType

matchingFallbacks = ['release', 'debug']

}

debug {

}

}

复制代码

4. 运行项目

现在可以直接打开`hyBridAndroid`项目编辑原生部分代码,可以打开`flutter_lib`项目编辑flutter部分代码

复制代码

注意:Android项目中嵌入Flutter,Android项目和Flutter项目是分开开发的,也就是说开发的时候要分别打开Android项目和Flutter项目

参考:

欢迎加入Flutter开发群457664582,点击加入,大家一起学习讨论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值