Flutter与Android的混合开发(1)如何在现有Android项目里嵌入Flutter Module

  1. 如何在现有Android项目里嵌入Flutter Module
  2. Activity如何跳转到Flutter页面,如何传值
  3. Flutter如何跳转到Activity,如何传值
  4. Android模块与Flutter模块的交互

所有源码已上传githubandroid

1.如何在现有Android项目里嵌入Flutter Module

1. 用Android Studio新建一个Android项目,咱们起名叫hyBridAndroid

2. 而后关闭项目,建立一个新目录,这里咱们起名叫HyBrid

而后在HyBrid目录下执行命令flutter create -t module flutter_lib(注意这里只能命令行建立,Android Studio没法在Android项目里建立Flutter Module),再把刚才建立的Android项目放到这个目录里,如今是这样的结构git

3. Android Studio打开hyBridAndroid项目,而后添加依赖

本地依赖github

  • 对于Android的本地依赖,主要是由include_flutter.groovy和flutter.gradle这两个脚本负责Flutter的本地依赖和产物构建bash

    • 在settings.gradle中注入include_flutter.groovy脚本
    • 在须要依赖的module中build.gradle添加project(':flutter')依赖
  • 代码以下所示app

    include ':app'
    //网上好多博客是这样写的,注意有可能会出现坑,一会会说到
    setBinding(new Binding([gradle: this]))
    evaluate(new File(settingsDir.parentFile, 'flutter_lib/.android/include_flutter.groovy'))
    复制代码
  • 而后在Android原生项目中的app中的build.gradle文件中添加依赖库post

    implementation project(':flutter')
    复制代码
  • 操做到这里之后,咱们的Android Studio是这样的目录结构了学习

有可能会出现坑gradle

Android 开发者很容易误觉得集成 Flutter Module 就像之前 Android 工程集成 Module同样,因此按照这种思路,执行依赖 Sync 的时候就会出现include\_flutter.groovy 相关文件丢失问题。解决这种问题两种思路,第一种状况,本质就是你的配置错了,官方 wiki 让你将 flutter_module 放在 Android 工程的同级目录下,而不是 Android 工程目录下。想一下这种问题为何会出现,主要就是一些很差的文章翻译不正确致使的问题。ui

注意this

若是你的项目中buildTypes有release,preview,debug……等等,须要在添加下面代码

buildTypes {
    release {

    }
    preview {
        //关键代码,release, debug为library中已有buildType
        matchingFallbacks = ['release', 'debug']
    }
    debug {

    }
}
复制代码

4. 运行项目

如今能够直接打开`hyBridAndroid`项目编辑原生部分代码,能够打开`flutter_lib`项目编辑flutter部分代码
复制代码

注意:Android项目中嵌入Flutter,Android项目和Flutter项目是分开开发的,也就是说开发的时候要分别打开Android项目和Flutter项目

参考:

github.com/yangchong21…

欢迎加入Flutter开发群457664582,点击加入,你们一块儿学习讨论

Flutter开发

相关文章
相关标签/搜索