1.创建一个目录,把已有的安卓项目复制到里面
2.用命令行,cd进来这个目录,flutter create -t module my_flutter,就会创建一个my_flutter的工程
如下图所示
3.cd /Users/mac/Desktop/Flutter_Mix_Android
cd my_flutter
cd .android
./gradlew flutter:assembleDebug
准备等待很久...等它处理完毕
4.打开setting.gradle 文件,加入如下代码
include ':app' // 注意,一定要是app,不能改为其它的,之前项目里面的app目录名字改了之后,一直报错
setBinding(new Binding([gradle: this])) // new
evaluate(new File( // new
settingsDir.parentFile, // new
'my_flutter/.android/include_flutter.groovy' // new
))
提示:
5.app/build.gradle 增加对flutter 工程依赖
dependencies {
implementation project(':flutter')
}
6.app的AndroidManifest.xml文件中增加以下代码:
<activity
android:name="io.flutter.embedding.android.FlutterActivity"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize"
/>
7.不指定页面(黑屏延迟很短,可以使用)
public class NativeApplication extends Application {
FlutterEngine flutterEngine;
@Override
public void onCreate() {
super.onCreate();
flutterEngine = new FlutterEngine(this);
flutterEngine.getDartExecutor().executeDartEntrypoint(
DartExecutor.DartEntrypoint.createDefault()
);
FlutterEngineCache.getInstance().put("my_engine_id", flutterEngine);
}
}
//页面跳转
Intent intent= FlutterActivity.withCachedEngine("my_engine_id").build(this);
startActivity(intent);
8.指定页面(黑屏延迟很短,可以使用)
public class NativeApplication extends Application {
FlutterEngine flutterEngine;
@Override
public void onCreate() {
super.onCreate();
flutterEngine = new FlutterEngine(this);
flutterEngine.getNavigationChannel().setInitialRoute("your/route/here");
flutterEngine.getDartExecutor().executeDartEntrypoint(
DartExecutor.DartEntrypoint.createDefault()
);
FlutterEngineCache.getInstance().put("my_engine_id", flutterEngine);
}
}
//页面跳转
Intent intent= FlutterActivity.withCachedEngine("my_engine_id").build(this);
startActivity(intent);
参考链接:
1.https://blog.csdn.net/LosingCarryJie/article/details/105950621
2.https://juejin.im/post/6844903705955794958
网友评论