Flutter与原生混合开发遇到的一些问题

最近进行了Android原生和Flutter的混合开发,耗时三天调试了二者之间的数据传递,感觉好难啊,遇到的各种各样的问题,大致列出来一些,避免自己忘了,也给大家分享一下。二者混合我才用的是闲鱼的那套方式

一,Gradle版本

创建好Flutter项目添加到Android依赖之后,Gradle版本需要升级到3.0以上,对应的gradle-xx.zip也需要升级到对应Gradle版本的版本,我使用的是3.0.2,对应gradle-4.4-all.zip。

二,targetSdkVersion版本问题

升级Gradle之后,targetSdkVersion也需要升级,当然buildToolsVersion也需要升级,我直接使用了28的版本,当然方法'compile'在升级之后已经不让使用了,全部替换成'implementation '或者'api',至于后二者的区别可自行谷歌查看下,这里第三方的library中如果有'compile ',请替换成'api',具体原因自己查询吧。

三,Androidx

我这个项目中使用了Butterknife和aspectj,第一个是黄油刀,后一个是AOP的框架,升级Gradle版本之后这两个会引起Androidx的编译问题,如果有使用这两个框架的,建议修改版本号,Butterknife大概9.0版本是可以的,aspectj的版本2.0.5吧。

四,aspectj和阿里推送

该框架的作者在github中并没有明确指出该框架二者之间的冲突怎么解决,目前我直接在项目的app.build文件中添加了

aspectjx {
        //excludes the libs that you don't want to weave
      exclude '*'
    }  

五,多渠道打包

Android与Flutter混合开发之后,多渠道打包的方式实现需要修改flutter.gradle文件,具体修改的目的是让flutter能识别出来渠道的名称,正式是只有dev和release的,这里建议直接去掉多渠道打包,只打基础包,然后使用python脚本打渠道包。

目前已实现混合开发,路由跳转,数据传递,后续会持续更新Flutter和Android的混合开发问题....

你可能感兴趣的:(Flutter与原生混合开发遇到的一些问题)