mix flutter

56 阅读1分钟

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项目一致。