鉴于当前flutter的生态,想要用flutter进行all in开发不太现实,混合开发势在必行。
经过两天的学习,对flutter有了一定的了解,然后配置了一下flutter-android混合开发环境,做个记录。
1、创建常规android项目AndroidHybrid,注意 minSdkVersion需要>16
2、cd到AndroidHybrid根目录
3、通过命令创建flutter module
flutter create -t module flutter_module
3.5、进入/flutter_module/.android/app下,检查build.gradle的dependencies依赖,是androidX还是support,需要和AndroidHybrid项目中的依赖保持一致。
4、修改AndroidHybrid根目录的setting.gradle并进行构建
include ':app'
//下方为新增
setBinding(new Binding([gradle: this]))
evaluate(new File(
settingsDir.parentFile,
'AndroidHybrid/flutter_module/.android/include_flutter.groovy'
))
在构建成功之后在AndroidHybrid/app下的build.gradle的dependencies里导入生成的module:
implementation project(':flutter')
注意:这里的module名称为flutter而不是flutter_module
5、修改MainActivity代码如下(flutter无需任何修改)并运行app:
启动后页面如下并点击加好按钮能够正常交互:
6、打包测试,和普通android项目一样进行打包,可以正常打包并安装,安装包大小为13.1M。
接下来测试一下Native开发下的安装包大小。
😂 😂 😂 混合开发的安装包比native的包大了10M有余,对安装包大小比较追求的简直望而却步呀。
如果打包过程中出现一下错误:
Default interface methods are only supported starting with Android N (--min-api 24): boolean io.flutter.embedding.android.SplashScreen.doesSplashViewRememberItsTransition()
请将下方代码添加到build.gradle的android下面:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Android-Flutter混合开发的简单搭建就完成了,谢谢观看~