总结在项目中使用了混合发开。我使用的是第一种方法 settingsDir.parentFile。
因为这样比较好管理代码。Android、IOS、Flutter 三个端各自处理自己代码。1.不会导致代码看的比较复杂。2.因为flutter项目需要在其他二端使用。所以选择了这个方案。
第一步:
新建一个flutter的module,用于将此module引入到现有android原生的工程中。
第二步:
在Android 原生项目的project根目录下的settings.gradle文件加入以下配置:
方法一:
include ':app'
setBinding(new Binding([gradle: this]))
evaluate(new File( settingsDir.parentFile,'flutter名称/.android/include_flutter.groovy'
))
方法二:
include ':app'
setBinding(new Binding([gradle: this]))
evaluate(new File( settingsDir,'flutter名称/.android/include_flutter.groovy'
))
这二种方法的不同点:
这两种写法差别就在flutter module的位置。settingsDir.parentFile
指定flutter module工程和Android app工程目录同级。
如果目录指定 settingsDir
,是指module工程和setting.gradle文件同级,即 flutter module工程在 Android app工程内部。
这二种方法的优缺点:
第一种
:
settingsDir.parentFile
优点:1.flutter 和 app 工程可以各不相干的写代码;2.可以实现2个语言的写法;3.专门一个人开发flutter项目,运用于Android 与 ios 端。
缺点:1.要拷贝两个文件夹,flutter module项目可能会被遗漏;2.而且需要通过两个Android Studio窗口开发。
第二种
:
settingsDir
优点:1.项目好管理,不会导致文件拷贝遗漏问题;2.一个Android Studio窗口开发两个工程。
缺点:1.语言不同,写代码比较麻烦,很多代码无提示。
第三步:
在app的build.gradle中添加依赖,添加完后再sync一下,这时flutter就引入到我们的项目中。
dependencies {
implementation project(':flutter')
}
第四步:
sync一下代码。最后完成。