1.创建Flutter module
file->new flutter project->(1)progect type:选择module模块,(2)progect location 选择 在AndroidDemo下
2.开始将flutter module 引入到 Android原生项目中
(1) settings.gradle中:
在include ':app'下添加:
include ':test_model_44'
setBinding(new Binding([gradle: this]))
evaluate(new File(
settingsDir.parentFile,
'MyApplication44/test_model_44/.android/include_flutter.groovy'
))
坑1:很多文章写的 evaluate(new File( settingsDir.parentFile, 'test_model_44/.android/include_flutter.groovy' )) 编译后会报找不到 include_flutter.groovy
若是不知道路径,可以输出 settingsDir.parentFile 的路径
例如: print settingsDir.parentFile
(2) 在build.gradle(app)中添加module
implementation project(':flutter') //这是固定死了的
3.编译项目
坑2: 编译项目后会报
Caused by: org.gradle.api.InvalidUserCodeException: Build was configured to prefer settings repositories over project repositories but repository ‘maven’ was added by plugin class ‘FlutterPlugin’
解决方案: 将
seetings.gradle中的(RepositoriesMode.FAIL_ON_PROJECT_REPOS)改为(RepositoriesMode.PREFER_PROJECT)
再次编译,很幸运,没有编译出错了
4.怀着期待的心情运行项目,发现会报
坑3: 看着这个错,就知道是没有加maven ,嗯,在settings.grade的 pluginManagement 和 dependencyResolutionManagement 里面加了相关的仓库后,再次编译+运行,还是报这个错
再次问问度娘,说要在 gradle.properties中添加 android.enableJetifier=true 再次编译+ 运行
还是报这个错
暴脾气一来,想降gradle的版本
菜鸟表示,换了之后 还是有一堆问题
凭着直觉,觉得是改了RepositoriesMode的原因,然后就去看看有什么区别,度娘总是在你快绝望的时候,努力了一下,然后搜到了 Android与flutter混合开发 - 简书
这个的文章,点进去一看,嗯,解决问题了
下面是我settings.grade和build.gradle的所有内容