使用场景:android原生页面直接跳转flutter功能页面
实现方式:
1. 将flutter代码打包成aar引入android项目,flutter代码对原生不可见
2. 将flutter代码引入android项目,flutter代码对原生可见
实现方式一:将flutter代码打包成aar引入android项目,flutter代码对原生不可见
1、创建flutter module项目
flutter module项目是可以单独运行的,项目结构同flutter Application类似,只不过这里是.android和.ios。
2、将flutter module打包成aar文件夹
按如下路径对module进行打包,打包完成后会生成系统的aar集成提示。
其中:
①aar生成的路径,如下图
②③④原生项目需要相应添加的代码
3、打开需要嵌入flutter代码的Android原生项目,分别导入上图的①②③④。
①:直接拷贝过来,repo文件是aar生成的路径
②:maven直接引用你本地的aar文件夹路径,这里是放在了app目录下。
代码:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0'
}
}
allprojects {
String storageUrl = System.env.FLUTTER_STORAGE_BASE_URL ?: "https://storage.googleapis.com"
repositories {
google()
jcenter()
maven {
url 'repo' //这里引用你本地的aar文件夹路径
}
maven {
url "$storageUrl/download.flutter.io"
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
③④:引用aar依赖
plugins {
id 'com.android.application'
}
android {
compileSdk 30
defaultConfig {
//compileSdk 30编译失败解决
configurations.all {
resolutionStrategy { force 'androidx.media2:media2-session:1.1.3' }
resolutionStrategy { force 'androidx.media2:media2-common:1.1.3' }
resolutionStrategy { force 'androidx.core:core:1.6.0' }
resolutionStrategy { force 'androidx.core:core-ktx:1.6.0' }
}
applicationId "com.example.aar_local"