1搔耕、創(chuàng)建flutter module 工程
2隙袁、配置app目錄下的build.gradle文件
在Flutter的混合開發(fā)中,我們通過Flutter_module 嵌入原生弃榨,這樣原生開發(fā)都需要配置Flutter環(huán)境菩收,所以為了減少開發(fā)成本,我們需要把Flutter_module 打包成一個庫直接供原生使用鲸睛。
下面我們學(xué)習(xí)一下Flutter打包aar的步驟:
項目app下build.gradle配置
配置成 apply plugin: 'com.android.library'娜饵,為了解決第三方庫不能一起打包在aar的問題,需要配置 apply plugin: 'com.kezong.fat-aar' 官辈,
def isLib =true
if(isLib) {
applyplugin:'com.android.library'
applyplugin:'com.kezong.fat-aar'
}else {
applyplugin:'com.android.application'
}
//library 需要屏蔽applicationId
if (isLib) {
defaultConfig {
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
}
} else {
defaultConfig {
applicationId "com.example.smart_library.host"
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
}
}
3箱舞、在項目根build.gradle 配置
為了解決第三方庫,一起不能打包到aar文件中拳亿,還需要在項目根build.gradle 配置 classpath 'com.kezong:fat-aar:1.0.3'
classpath'com.kezong:fat-aar:1.0.3'
4晴股、最后編譯aar 文件
進入工程目錄下,在控制臺輸入** flutter build aar ** 等待編譯....
編譯成功后會在工程目錄下
5肺魁、集成到宿主工程當中
1电湘、拷貝aar文件到lib庫下引入到app.gradle配置文件當中
2、根build.gradle配置文件當中引用flutter 倉庫
maven {
url "http://download.flutter.io"
}
3、app目錄下的gradle配置
repositories {
flatDir {
dirs 'libs' // aar目錄
}
}
4寂呛、引用aar文件
implementation(name: 'flutter-release', ext: 'aar')
//flutter 相關(guān) 根據(jù)需要引用對應(yīng)的版本
implementation 'io.flutter:flutter_embedding_release:1.0.0-ae90085a8437c0ae94d6b5ad2741739ebc742cb4'
implementation 'io.flutter:armeabi_v7a_release:1.0.0-ae90085a8437c0ae94d6b5ad2741739ebc742cb4'
implementation 'io.flutter:arm64_v8a_release:1.0.0-ae90085a8437c0ae94d6b5ad2741739ebc742cb4'
implementation 'io.flutter:x86_64_release:1.0.0-ae90085a8437c0ae94d6b5ad2741739ebc742cb4'
注意以上的版本號 是通過打包的arr 配置文件下怎诫,選擇對應(yīng)的版本
6、原生調(diào)用flutter
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FlutterMain.startInitialization(this);
setContentView(R.layout.activity_flutter_text);
findViewById(R.id.button).setOnClickListener(v -> {
startActivity(FlutterActivity.createDefaultIntent(this));
});
}