全部源码已上传github
1.如何在现有Android项目里嵌入Flutter Module
1. 用Android Studio新建一个Android项目,我们起名叫hyBridAndroid
2. 然后关闭项目,创建一个新目录,这里我们起名叫HyBrid
然后在HyBrid目录下执行命令flutter create -t module flutter_lib(注意这里只能命令行创建,Android Studio无法在Android项目里创建Flutter Module),再把刚才创建的Android项目放到这个目录里,现在是这样的结构
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是这样的目录结构了
有可能会出现坑
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,点击加入,大家一起学习讨论