Android 工程中集成 Flutter Module

栏目: IOS · Android · 发布时间: 6年前

内容简介:为了将 Flutter 引入到 Android 工程中,官方提供了以 Module 形式载入。但是实践一下,发现坑真的很多。首先如果 需要实现这个需求,可以参照Android 开发者很容易误以为集成 Flutter Module 就像以前 Android 工程集成 Module 一样,所以按照这种思路,执行依赖 Sync 的时候就会出现要命的是这种问题是非常低级的,低级到别人都没遇到过。解决这种问题两种思路,第一种情况,本质就是你的配置错了,官方 wiki 让你将 flutter_module 放在 An

为了将 Flutter 引入到 Android 工程中,官方提供了以 Module 形式载入。但是实践一下,发现坑真的很多。首先如果 需要实现这个需求,可以参照 Add Flutter to Android 这篇官方wiki来实现。下面我讲述一下遇到的坑吧,算是一个记录。

Module 的位置

Android 开发者很容易误以为集成 Flutter Module 就像以前 Android 工程集成 Module 一样,所以按照这种思路,执行依赖 Sync 的时候就会出现 include_flutter.groovy 相关文件丢失问题。

要命的是这种问题是非常低级的,低级到别人都没遇到过。解决这种问题两种思路,第一种情况,本质就是你的配置错了,官方 wiki 让你将 flutter_module 放在 Android 工程的 同级目录 下,而不是 Android 工程目录下。想一下这种问题为什么会出现,主要就是一些不好的文章翻译不正确导致的问题。

第二种就是尝试一下在出错的地方理解下原理,路径配置的时候,加上 Android 工程的路径,试验下发现也是可以 Sync 过的。

setBinding(new Binding([gradle: this]))                                 
evaluate(new File(                                                      
        settingsDir.parentFile,                                               
        '/工程路径/my_flutter/.android/include_flutter.groovy'                          
))

support 依赖包冲突

Flutter 中 Android 工程可能会与项目中的 support 之间存在冲突,加入如下代码即可:

dependencies {
    ...
    implementation(project(':flutter'),{
        exclude group: 'com.android.support'
    })
    ...

minSdkVersion

这个比较简单,升级一下你的 minSdkVersion 的版本要是16

getLifeCycle 找不到

添加谷歌Maven仓库,默认情况下,Android Studio 项目是不会配置的。如果要加入此仓库,打开项目的 build.gradle ,将下面高亮的部分加入到配置文件中。

allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }
    }
}

同时 Android 工程的 buildToolsVersion 太低,将25改成27。

验证

最后,在 Android 宿主工程的 MainActivity 的 onCreate 方法中,加入以下代码,验证是否能够成功调起 Flutter 对应的页面:

View flutterView = Flutter.createView(
                MainActivity.this,
                getLifecycle(),
                "route1"
        );
        FrameLayout.LayoutParams layout = new FrameLayout.LayoutParams(600, 800);
        layout.leftMargin = 100;
        layout.topMargin = 200;
        addContentView(flutterView, layout);

以上就是按照官方 Wiki 配置会出现的一些问题以及最后验证是否配置成功的代码。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Analytics 2.0

Web Analytics 2.0

Avinash Kaushik / Sybex / 2009-10-26 / USD 39.99

The bestselling book Web Analytics: An Hour A Day was the first book in the analytics space to move beyond clickstream analysis. Web Analytics 2.0 will significantly evolve the approaches from the fir......一起来看看 《Web Analytics 2.0》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试