文章目錄
Android 導入Flutter模塊
Flutter可以作爲源代碼Gradle子項目或AAR嵌入到您現有的Android應用程序中。
可以使用帶有Flutter插件的Android Studio IDE 或手動完成集成流程
Flutter目前只支持構建用於x86_64、armeabi-v7a和arm64-v8a的AOT編譯庫
考慮使用abiFilters
Android Gradle插件API來限制APK中支持的架構。這樣做可以避免丟失libflutter.so
運行時崩潰,例如:
android {
//...
defaultConfig {
ndk {
// Filter for architectures supported by Flutter.
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
}
}
}
兩種方式
1.使用Android Studio
File > New > New Module...
現有Android項目中Android Studio中的菜單,您可以創建要集成的新Flutter模塊,也可以選擇以前創建的現有Flutter模塊
2.手動整合
創建Flutter模塊
假設您在處已有一個Android應用some/path/MyApp
,並且您希望Flutter項目作爲同級項目:
$ cd some/path/
$ flutter create -t module --org com.example my_flutter
Java 8要求
Flutter Android引擎使用Java 8功能。
在嘗試將Flutter模塊項目連接到主Android應用之前,請確保您的主Android應用在您的應用build.gradle
文件中的android { }
塊下聲明瞭以下源兼容性,例如:
android {
//...
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
}
添加Flutter模塊作爲依賴項
將Flutter模塊添加爲Gradle中現有應用程序的依賴項。
有兩種方法可以實現此目的
1.AAR機制會創建通用的Android AAR作爲打包Flutter模塊的中介。當您的下游應用程序構建者不想安裝Flutter SDK時,這很好。但是,如果您經常進行構建,則會增加一個構建步驟
2.源代碼子項目機制是一種便捷的一鍵式構建過程,但需要Flutter SDK。這是Android Studio IDE插件使用的機制
1.AAR
2.源代碼模塊(module)
Android項目和Flutter項目啓用一個步驟的構建。當您同時在兩個部分上進行快速迭代時,此選項很方便,但是您的團隊必須安裝Flutter SDK才能構建主應用程序
在主APP的settings.gradle
下:
include ':app' // assumed existing content
setBinding(new Binding([gradle: this])) // new
evaluate(new File( // new
settingsDir.parentFile, // new
'my_flutter/.android/include_flutter.groovy' // new
))
app的build.gradle添加依賴
dependencies {
implementation project(':flutter')
}
gradle sync (同步)一下,OK