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開發

相關文章
相關標籤/搜索