【发布时间】:2020-06-11 20:49:21
【问题描述】:
我正在使用我的安卓手机来运行我的颤振代码。问题是当我运行任何代码时(即与我创建颤振项目时创建的自动生成颤振代码不同),它总是向我显示自动生成颤振代码的输出。每次运行后我都必须重新加载它才能获得新代码的输出。另外,在我将手机与 PC 分离后,手机上的应用程序仍然是自动生成的应用程序。我已经使用了android studio和VS code,但问题仍然存在。我尝试创建新项目,但仍然没有运气。
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
void main() => runApp(new MaterialApp(home: new KeyetWedetApp ())); //The runApp() function takes the given Widget and makes it the root of the widget tree.
class KeyetWedetApp extends StatefulWidget {
@override
_State createState() => new _State();
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new MaterialApp(
title: 'Flutter Demo',
theme: new ThemeData(
primarySwatch: Colors.red,
),
home: new KeyetWedetApp(),
darkTheme: new ThemeData(accentColor: Colors.deepPurpleAccent),
);
}
}
class _State extends State<KeyetWedetApp> {
static List _pageSelectorList = <Widget>[
Image.asset('assets/images/balloon.jpeg'),
Image.asset('assets/images/beach.jpeg'),
Image.asset('assets/images/camp.jpeg'),
Image.asset('assets/images/hello.png'),
Image.asset('assets/images/mountain.jpeg')
//TODO Insert our own images which describe what our application will do step by step.
];
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: new Container(
child: new DefaultTabController(
length: _pageSelectorList.length,
child: Builder(
builder: (BuildContext context) => Padding(
padding: EdgeInsets.fromLTRB(10.0, 30.0, 10.0, 10.0),
child: new Column(
children: <Widget>[
new TabPageSelector(selectedColor: Colors.blue),
new Expanded(
child: IconTheme(
data: IconThemeData(
size: 200.0,
color: Theme.of(context).accentColor,
),
child: TabBarView(
children: _pageSelectorList,
),
)),
new FlatButton(
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => HomePage()));
},
child: new Text(
'Let\'s Get Started',
style: new TextStyle(fontSize: 20, color: Color(0xFF757575)),
),
)
],
),
),
),
),
),
),
);
}
}
当我运行这段代码时,它编译并正常运行,没有错误或异常。它是这样的:
- 在调试模式下在 SM G950F 上启动 lib\main.dart...
- √ 内置 build\app\outputs\apk\debug\app-debug.apk。
- D/FlutterActivity(9631):使用启动主题作为正常主题。 D/FlutterActivityAndFragmentDelegate(9631):设置 FlutterEngine。 D/FlutterActivityAndFragmentDelegate(9631):没有提供首选的 FlutterEngine。为这个 FlutterFragment 创建一个新的 FlutterEngine。 D/FlutterActivityAndFragmentDelegate(9631):将FlutterEngine附加到拥有这个Fragment的Activity。 D/FlutterView(9631):附加到 FlutterEngine:io.flutter.embedding.engine.FlutterEngine@133f78d D/FlutterActivityAndFragmentDelegate(9631):执行 Dart 入口点:main,并发送初始路由:/ D/ViewRootImpl@bcf80b7MainActivity: MSG_RESIZED_REPORT: frame=Rect(0, 0 - 1080, 2220) ci=Rect(0, 63 - 0, 0) vi=Rect(0, 63 - 0, 0) or=1 D/InputTransport(9631):输入通道构造:fd=99 D/InputMethodManager(9631):prepareNavigationBarInfo() DecorView@13938bf[MainActivity] D/InputMethodManager(9631):getNavigationBarColor()-855310 V/InputMethodManager(9631): 开始输入: tba=com.keyetwedet.keyet_wedet ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false D/InputMethodManager(9631):startInputInner-ID:0 E/AccessibilityBridge(9631):VirtualView 节点不能是根节点。
当它最终在我的手机上启动代码时,无论我写什么代码,它总是显示这样的颤振示例代码输出:
This is what i always get on the first run
所以,为了让我的手机显示我的代码,我必须“热重启”它。只有这样我才能得到我的代码的输出。
This is my code's output which comes after i hot restarted it
但在我停止调试并将手机与电脑分离后,我手机上的应用程序仍然是颤振示例代码的输出。
总的来说,我的问题如下:
- 为什么它在第一次运行时没有显示我的代码输出。
- 为什么它不将我的代码保存在我的设备上,以便当我在手机上打开应用程序时它可以显示我的代码输出。
【问题讨论】:
-
你能发布你的 main.dart 代码吗??
-
... 也可以发布运行控制台的输出。您是否收到说“正在启动...在...”、“已构建...”、“正在安装...”等消息?您的代码是否真正编译过,或者您的手机只是重新运行之前安装的代码(即默认示例应用程序)。
-
试试这个: - 当您能够在应用程序上运行代码时,不要终止您的进程或设备中的应用程序。在您的应用程序运行时,在不终止进程的情况下分离您的手机。查看应用程序是否仍在运行您想要的代码。 - 如果应用程序运行所需的代码,则尝试终止应用程序,然后重新启动它,如果它显示 Flutter 的默认启动器应用程序,请告诉我
-
@Harsh_Mehta 我试过了,但仍然显示默认的启动应用程序:(