Flutter混合开发—Android环境

鉴于当前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混合开发的简单搭建就完成了,谢谢观看~

你可能感兴趣的:(Flutter混合开发—Android环境)