Android项目集成Flutter

Posted 一杯清泉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

 

 

 

以上是关于Android项目集成Flutter的主要内容,如果未能解决你的问题,请参考以下文章

如何在集成了 Flutter 模块的 Android 应用上运行 UI 测试?

Android项目集成Flutter

Android 原生项目集成 Flutter

Flutterflutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘(代码片段

原生Android集成Flutter混合开发

Flutter集成高德定位和地图功能