1,,下載flutter,配置環境變量,運行flutter doctor檢測
2, 1步驟中,檢測發現as的flutter和dart插件沒有安裝,打開as,搜索插件后安裝
3,再次flutter doctor,發現插件還是提示未安裝(此處記錄,as使用的是zip解壓版的,緩存目錄通過local.properties配置到了別的路徑,不知道是否跟這個有關系)
4,打開as,新建flutter project ,可以正常運行
5,新建android 原生項目,在原生項目中新建flutter的module,能夠正常添加成功,但是有幾個小問題(問題可以通過其他方法解決,具體原因還不清楚)
a,新建的module中缺失東西
b,cp過來的facade包中,java代碼報錯,發現有包少引入
implementation 'com.android.support:support-v13:27.1.1' implementation 'com.android.support:support-annotations:27.1.1' implementation 'android.arch.lifecycle:livedata:1.1.1'
c,flutter的module單獨安裝時,能正常安裝為flutter的app
d,在項目的setting.gradle中添加flutter的module的引入
setBinding(new Binding([gradle: this])) evaluate(new File( settingsDir, //module所在的目錄(針對當前文件的相對路徑) 'my_flutter1/.android/include_flutter.groovy' //基本都一樣 )) include ':my_flutter1'//引入flutter的module
e,在主工程中引入flutter的module
implementation project(':flutter')
6,經過上面幾部,as的原生項目就可以引入flutter的module,並且可以跳轉至flutter中的頁面了
final FlutterView flutterView = Flutter.createView(SecondActivity.this,getLifecycle(),"flutter_activity_1");//創建flutterview,路由id為flutter_activity_1 flutterView.setVisibility(View.INVISIBLE);//靜默創建flutterview ViewGroup.LayoutParams layout = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT); flutterView.addFirstFrameListener(new FlutterView.FirstFrameListener() { @Override public void onFirstFrame() { flutterView.setVisibility(View.VISIBLE);//當flutterview初始化完成后,顯示 } }); addContentView(flutterView, layout);//添加flutterview進布局