flutter 开发
目前正学习flutter开发,准备用flutter写一个简单的App进行练手。由于本人以前是Android开发,所以使用Android studio做为IDE,但是在开发的过程中遇到一些问题。这里把碰到的问题记录下来,防止下次再遇到。同时也可以给别人提供相应的参考。
Android studio 创建flutter project长时间无响应
这里是android studio 安装flutter及dart插件后,会在创建项目时有一个flutter project的选项,但是如果使用android studio创建的话,android studio就他卡死,也无法关闭。这个问题我也没有直接解决,只能把长绕过去了。其时很简单,那就是不使用android studio创建项目,而是使用flutter命令创建项目。之后使用android studio打开它。命令如下:
# flutter create 项目名称,项目名称不能使用驼峰方式,单词之间需要使用下划下分割。
flutter create android_demo
建好后使用android studio的open existing Android Studio Project功能,或File->open功能打开。
android studio 无法联接设备
我使用上面的方法建成flutter 项目之后,android studio一直无法联接到设备,但是Logcat功能是正常的。说明数据以及手机是没有问题。不清楚使用android studio直接创建的项目有没有此问题。情况如下图。
解决方案是使用flutter命令配置android sdk的路径,之后重启android studio就正常了。
#flutter config --android-sdk Android SDK路径
flutter config --android-sdk ~/develop/tools/android-sdk-linux/
添加静态资源图片
这个是在使项目中理解错误,所以造成无法加载图片。这里就不说过程了,直接说结果。
那就是图片资源文件是需要放在项目根目录下的。如下图处images文件夹。由于最开始放到了lib文件夹下,所以无法加载。
Fluterr 页面跳转
本打算写一个起动页,但是发现页面跳转一直报错,后来经过多方查找,发现页面跳转到的时候,不能使用MaterialApp为根的widget ,如下会报错,
import 'package:flutter/material.dart';
import 'package:android_demo/home.dart';
void main() => runApp(new MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
//根 widget 为MaterialApp
return new MaterialApp(home: new RaisedButton(onPressed: () {
Navigator.of(context).push(new MaterialPageRoute(builder: (context) {
return new HomePage();
}));
}));
}
}
更新后可以正常使用:
// ---------------------------在runApp内new mMaterialApp
void main() => runApp(new MaterialApp(home: new MyApp()));
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
//此处为Scaffold
return new Scaffold(
body: new Center(
child: new RaisedButton(onPressed: (){
Navigator.of(context).push(new MaterialPageRoute(builder: (context) {
return new HomePage();
}));
}),
),
);
}
}