Android项目集成Flutter

 

在Android开发中某些组件或者页面需要使用Flutter开发,这篇文章主要介绍已有的Android项目集成Flutter开发环境。

一、Flutter开发环境配置

1、flutter插件配置

Android Studio ——>Preferences——>搜索flutter插件——>install——>重启项目

2、下载flutter-sdk

https://flutterchina.club/

我使用的是Mac的系统,下载地址为:

https://storage.googleapis.com/flutter_infra/releases/stable/macos/flutter_macos_2.0.6-stable.zip

下载完成解压缩,放在合适的位置。

3、环境变量配置

open -e ~/.zshrc

文件中输入:

export FLUTTER_ROOT=/Users/xxx/Library/Flutter/flutter
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH=$PATH:$FLUTTER_ROOT/bin

FLUTTER_ROOT:SDK路径,改成你自己设置的地址。

PUB_HOSTED_URL和FLUTTER_STORAGE_BASE_URL根据:https://flutterchina.club/setup-macos/设置。

使环境变量生效:

source ~/.zshrc

4、flutter项目介绍

flutter项目分为以下几个,Android中集成Flutter需要新建Flutter Module。

  • Flutter Application: Flutter应用
  • Flutter Module :Flutter与原生混合开发
  • Flutter Plugin:Flutter插件
  • Flutter Package:纯Dart组件

二、Android项目中添加flutter

1、添加module

打开或者新建Android工程,选择New Module:

Project name:项目名称。

Flutter SDK path:上一步所下载的SDK放置的路径。

Project location:flutter_module所在的父级路径,这个路径需要和Android项目路径在同一等级,千万不能在Android项目内部的目录,否则会关联失败,没法编译。

之后会自动生成:

(1)AndroidFlutterDemo/settings.gradle

setBinding(new Binding([gradle: this]))
evaluate(new File(
  settingsDir,
  '../flutter_module/.android/include_flutter.groovy'
))

(2)AndroidFlutterDemo/app/build.gradle

implementation project(path: ':flutter')

如果没有则可以手动添加,注意:

  • include_flutter.groovy的路径必须是flutter_module里面的,否则会找不到。
  • implementation project(path: ':flutter')必须是固定的,不能更改为:implementation project(path: ':flutter_module')

2、添加清单文件

将FlutterActivity注册到Android项目的清单文件中,这一步需要手动操作。

<activity
    android:name="io.flutter.embedding.android.FlutterActivity"
    android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
    android:hardwareAccelerated="true"
    android:theme="@style/AppTheme"
    android:windowSoftInputMode="adjustResize" >
</activity>

3、跳转测试

MainActivity中:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.btn).setOnClickListener(view -> {
            Intent intent = FlutterActivity.createDefaultIntent(MainActivity.this);
            startActivity(intent);
        });
    }
}

这样就可以跳转到新的flutter页面了。

Demo地址:https://download.csdn.net/download/yoonerloop/18542251

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值