創建Flutter模塊
假如老項目目錄在/Users/xq/Android/Projects/NativeFlutter/
cd ..
切換到上目錄執行flutter create -t module flutter_module
上面的命令會創建一個flutter的項目模塊,
在flutter_module文件夾中有一個.android的隱藏文件夾,裏面包裹了一個安卓庫的工程模塊。
可以使用如下命令編譯,不編譯也可以
cd .android/
./gradlew flutter:assembleDebug
編譯後會在.android/Flutter/build/outputs/aar/路徑下產生flutter-debug.aar的文件。
主 APP 依賴 Flutter Module
再app的module導入flutter
dependencies {
implementation project(':flutter')
}
uses-sdk:minSdkVersion 與 Flutter Module 的不一致。改一下項目的minSdkVersion 即可。
appde Module添加jdk1.8支持
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
...
}
settings.gradle中加入
include ':app'
setBinding(new Binding([gradle:this]))
evaluate(new File(
settingsDir.parentFile,'flutter_module/.android/include_flutter.groovy'
))
點擊顯示flutter view
fun showFlutter(v: View) {
val flutterView = Flutter.createView(this@MainActivity, lifecycle, "route1")
val layout = FrameLayout.LayoutParams(600, 800)
layout.leftMargin = 100
layout.topMargin = 200
addContentView(flutterView, layout)
}
main.dart中添加路由
void main() => runApp(_widgetForRoute(window.defaultRouteName));
Widget _widgetForRoute(String route) {
switch (route) {
case 'route1':
return MyHomePage();
default:
return Center(
child: Text('Unknown route: $route', textDirection: TextDirection.ltr),
);
}
}