Android Native 工程集成 Flutter 的两种方式

文章讲述了在使用Flutter与Android原生工程交互时遇到的错误,涉及到androidx包的迁移,aar文件的生成与引用,以及如何解决libflutter.so依赖问题,最终实现Flutter模块的快速集成。
摘要由CSDN通过智能技术生成

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

报红??????看一下报的错误吧。

Type mismatch.
Required: Lifecycle!
Found: androidx.lifecycle.Lifecycle

看来是类型不匹配啊,androidx 是 support 包整合之后,用以解决 support 包混乱的问题,没关系,换成 support(flutter 也支持 androidx,在新建工程的时候下方有个选项是否使用 androidX,28 版本是 support 库最后支持的版本,后面都要使用 androidX)。同时,将 gradle.properties 设置为useAndroidX=falseenableJetifier=false

// 将 androidx 依赖改成这个
implementation “com.android.support:appcompat-v7:28.0.0”

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

再试一把:加入代码 setContentView(flutterView)

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

FlutterMain.startInitialization(this)

val flutterView = Flutter.createView(this, lifecycle, “/main”)
setContentView(flutterView)
}
}

可以简单理解为创建了一个 View,然后设置为布局

@NonNull
public static FlutterView createView(@NonNull final Activity activity,
@NonNull final Lifecycle lifecycle,
final String initialRoute)

initialRoute:在 flutter 中设置的页面路由,而在 flutter 工程默认生成的工程中,flutter_module_project/lib/main.dart没有配置路由,给其配置一个路由:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

再试亿把:编译成功了,下载到手机中试一试 方式1:as 里面的 run 方式2:打开 terminal ,输入 flutter run

作为未来的外卖员,该选哪个你心里没点数吗?肯定第一种啊!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Default interface methods are only supported starting with Android N (–min-api 24): void android.arch.lifecycle.DefaultLifecycleObserver.onCreate(android.arch.lifecycle.LifecycleOwner)

在 native 工程的 build.gradle 里面添加如下代码:

android {

defaultConfig{

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
}

到这里就成了!我们是冠军!

看一下成果(忽略这丑陋的一切):

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.2 - 以 aar 形式引入

在开始骚操作之前,先解剖一下刚刚成功生成的 apk 文件:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

libflutter.soflutter_assets是 flutter 运行必备的资源,前者是flutter 框架基础,后者就是 lib 文件夹下的 dart 代码,这就是坑的开始。

2.2.1 - 步骤1:生成 aar

–> 进入 flutter module 工程

两种方式:

  1. 进入 .android 文件夹,打开 Terminal,输入指令:

./gradlew assembleDebug

编译结束后

  • 8
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值