1.原生的android代碼跳轉Flutter頁面有黑屏的情況,
跳轉方式如下:
// 實例化FlutterEngine對象
FlutterEngine flutterEngine = new FlutterEngine(this);
// 設置初始路由
flutterEngine.getNavigationChannel().setInitialRoute("route1");
// 開始執(zhí)行dart代碼來pre-warm FlutterEngine
flutterEngine.getDartExecutor().executeDartEntrypoint(
DartExecutor.DartEntrypoint.createDefault()
);
// 緩存FlutterEngine
FlutterEngineCache.getInstance().put("my_engine_id", flutterEngine);
//跳轉到Flutter頁面有黑屏現(xiàn)象
Intent intent = FlutterActivity.withCachedEngine("my_engine_id").build(MainActivity.this);
startActivity(intent);
在Android響應Activity對應的theme中添加如下
<item name="android:background">@android:color/transparent</item>
2.原生android接入flutter遇到的一個編譯問題,
在android原生項目中創(chuàng)建Flutter的module,在編譯時遇到
FAILURE: Build failed with an exception.
* Where:
Script 'D:\fluttersdk\packages\flutter_tools\gradle\flutter.gradle' line: 752
* What went wrong:
A problem occurred configuring project ':app'.
> Failed to notify project evaluation listener.
> Could not get unknown property 'android' for project ':app' of type org.gradle.api.Project.
> Could not get unknown property 'android' for project ':app' of type org.gradle.api.Project.
> Could not get unknown property 'android' for project ':app' of type org.gradle.api.Project.
.............
* Get more help at https://help.gradle.org
CONFIGURE FAILED in 0s
解決編譯問題:
android原生項目中的app目錄被我改成了app-platform,在x:\fluttersdk\packages\flutter_tools\gradle\flutter.gradle' line: 752處附近,找到
// Flutter module included as a subproject in add to app.
String hostAppProjectName = project.rootProject.hasProperty('flutter.hostAppProjectName') ? project.rootProject.property('flutter.hostAppProjectName') : "app"
Project appProject = project.rootProject.findProject(":${hostAppProjectName}")
assert appProject != null : "Project :${hostAppProjectName} doesn't exist. To custom the host app project name, set `org.gradle.project.flutter.hostAppProjectName=<project-name>` in gradle.properties."
將"app"改成"app-platform",重新編譯,只能解決編譯問題哦。