手把手教你在Android项目中接入Flutter,在Flutter中使用Android布局

本文手把手教你如何在Android项目中接入Flutter界面,并在Flutter中使用Android布局。首先创建Flutter模块,解决androidx兼容问题,然后在Flutter中编辑入口,最后在Android中接入Flutter并实现获取Android数据和布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开头

在flutter开发中,始终会有下面两个无法避免的问题:

  • 原生项目往flutter迁移,就需要在原生项目中接入flutter
  • flutter项目中要使用到一些比较成熟的应用,就无法避免去用到原生的各种成熟库,比如音视频之类的

这篇文章,将会对上面两种情况,分别进行介绍

在Android中接入flutter界面

在android项目中需要将flutter以module的形式接入

创建flutter module

进入当前android项目,在根目录运行如下命令:

flutter create -t module my_flutter

上面表示创建一个名为 my_flutter 的flutter module

之后运行

cd my_flutter
cd .android/
./gradlew flutter:assembleDebug

同时,确保你的在你的android项目目录下 app/build.gradle ,有添加如下代码:

android {
    compileSdkVersion 28
    defaultConfig {
        ...
    }
    buildTypes {
        ...
    }

    //flutter相关声明
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
}

接着,在 android项目 根目录下的 settings.gradle 中添加如下代码

include ':app'
setBinding(new Binding([gradle: this]))
evaluate(new File(
        rootDir.path + '/my_flutter/.android/include_flutter.groovy'
))

最后,需要在android项目下的 app/build.gradle 中引入 my_flutter

dependencies {
    ...

    //导入flutter
    implementation project(':flutter')
}

到这里,基本上就可以开始接入flutter的内容了

不过这时候还有一个问题需要注意,如果你的android项目已经迁移到了androidx,可能你会遇到下面的这种问题

这种问题明显是因为flutter创建moudle时,并未做到androidx的转换,因为创建moudle的命令还不支持androidx

可以查看下面这个issue

Generated Flutter Module Files Do Not Use AndroidX

下面就开始解决这个问题

解决androidx带来的问题

首先,如果你原先的android项目已经迁移到了androidx,那么在根目录下的 grale.properties 一定有如下内容

# 表示使用 androidx
android.useAndroidX=true
# 表示将第三方库迁移到 androidx
android.enableJetifier=true

下面进入到 my_flutter 目录下,在 你的android项目/my_flutter/.android/Flutter/build.gradle 中对库的依赖部分进行修改

如果默认的内容如下:

dependencies {
    testImplementation 'junit:junit:4.12'
    implementation 'com.android.support:support-v13:27.1.1'
    implementation 'com.android.support:support-annotations:27.1.1'
}

将所有依赖修改为androidx的版本:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值