Android原生项目依赖flutter项目:
项目A的kotlin_version需要在1.5.10及以上,建议1.5.10,相应项目A需要将room版本提升到2.3.0及以上。如果有使用com.bennyhuo.kotlin:deepcopy库需要删掉,版本不兼容。
项目A的gradle-wrapper.properties文件中的gradle版本设置为对应版本gradle-6.1-all.zip。
使用AndroidStudio新建flutter项目,项目类型为application。
.gitignore文件不需要修改,可将生成内容直接添加到git.
项目A的settings.gradle中添加:
setBinding(new Binding([gradle: this]))
evaluate(new File(
settingsDir.parentFile.parentFile,
'uneedflutter/.android/include_flutter.groovy'
))
其中,settingsDir.parentFile.parentFile:是在A与B在同一个父目录下的情况。如果B在A项目内,则应为settingsDir.parentFile;uneedflutter为flutter项目名称,即项目文件夹名称,目的是指明对应的include_flutter.groovy文件的路径,应该可以在指定的路径下找到该文件。
在A项目中需要使用B中内容的模块下的build.gradle中添加:
//uneed flutter start
implementation project(':flutter')
//uneed flutter end
主项目(A)的gradle.properties中添加:
flutter.hostAppProjectName=rockapp
在特定版本中,将B引入到A时,需要将.android/Flutter/build.gradle中的
compileSdk flutter.compileSdkVersion
修改为
compileSdkVersion flutter.compileSdkVersion
才能通过编译.
flutter项目依赖flutter插件(需要原生代码)项目
AndroidStudio新建flutter项目,项目类型选择plugin,不用修改git.ignore.
flutter项目B依赖flutter插件项目C时,不关心C项目的kotlin和gradle版本。但是如果有一个原生项目A依赖B项目,则需要将插件C项目的相关版本信息修改和原生A项目一致。