-
Flutter SDK 下载: Flutter腾讯云下载地址 清华TUNA镜像下载地址 (亲测可用)
-
解压zip包 :将下载的zip包解压到一个文件夹中(镜像不要解压到C盘系统权限的文件夹)
-
配置Flutter的环境变量 :在环境变量的Path中添加
- 环境监测后显示
重点关注两点 :第二个Android toolchain和Android Studio,下面来解决Android Studio插件安装问题,第二个问题主要是没有license授权原因,放在安装问题及解决中
- Android Studio插件安装
a. 打开Android Studio
b. 打开File->setting->Plugins
c. 在Marketplace中搜索Flutter
d. 安装Flutter,同时会提示安装Dart插件,选择Yes
e. Restart IDE安装完毕!!!
2. 使用
=================================================================
-
现有App创建一个Flutter项目
-
创建一个项目FlutterTest ,选择一个Empty Activity
- 创建一个FlutterModule,File->New->New Module…
- 等待创建好项目,在setting.gradle 中会看到
include ‘:app’
setBinding(new Binding([gradle: this]))
evaluate(new File(
settingsDir,
‘…/flutter_module_test/.android/include_flutter.groovy’
))
rootProject.name = “FlutterTest”
- 在build.gradle ,是app目录下的,你会看到一行这个,这些一般情况都会自己生成
dependencies {
implementation project(path: ‘:flutter’)
}
-
在App主页面开启Flutter
-
在主页面添加一个Button
<Button
android:id="@+id/button"
android:layout_width=“wrap_content”
android:layout_height=“w
rap_content”
android:layout_marginTop=“392dp”
android:text=“start Flutter”
app:layout_constraintEnd_toEndOf=“parent”
app:layout_constraintStart_toStartOf=“parent”
app:layout_constraintTop_toTopOf=“parent” />
- 在AndroidManifest.xml中注册Activity
<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”
/>
- 加载FlutterActivity
button绑定事件,这里使用的是kotlin的写法
button.setOnClickListener {
startActivity(
FlutterActivity.createDefaultIntent(this)
)
}
- 运行
-
可能会遇到的问题,每次点击摁扭加载都需要一段时间,可以使用缓存机制。
-
使用缓存的FlutterEngine
class MainActivity : AppCompatActivity() {
lateinit var flutterEngine : FlutterEngine
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//初始化
flutterEngine = FlutterEngine(this)
class MainActivity : AppCompatActivity() {
lateinit var flutterEngine : FlutterEngine
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//初始化
flutterEngine = FlutterEngine(this)