【问题标题】:Why am i getting the default flutter example code every time i run my new flutter code on my phone?为什么每次在手机上运行新的颤振代码时都会获得默认的颤振示例代码?
【发布时间】: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

但在我停止调试并将手机与电脑分离后,我手机上的应用程序仍然是颤振示例代码的输出。

总的来说,我的问题如下:

  1. 为什么它在第一次运行时没有显示我的代码输出。
  2. 为什么它不将我的代码保存在我的设备上,以便当我在手机上打开应用程序时它可以显示我的代码输出。

【问题讨论】:

  • 你能发布你的 main.dart 代码吗??
  • ... 也可以发布运行控制台的输出。您是否收到说“正在启动...在...”、“已构建...”、“正在安装...”等消息?您的代码是否真正编译过,或者您的手机只是重新运行之前安装的代码(即默认示例应用程序)。
  • 试试这个: - 当您能够在应用程序上运行代码时,不要终止您的进程或设备中的应用程序。在您的应用程序运行时,在不终止进程的情况下分离您的手机。查看应用程序是否仍在运行您想要的代码。 - 如果应用程序运行所需的代码,则尝试终止应用程序,然后重新启动它,如果它显示 Flutter 的默认启动器应用程序,请告诉我
  • @Harsh_Mehta 我试过了,但仍然显示默认的启动应用程序:(

标签: android flutter


【解决方案1】:

我尝试了很多东西,发现如果我在调试之前在终端上运行flutter clean 就可以解决问题!

【讨论】:

    猜你喜欢
    • 2017-10-30
    • 1970-01-01
    • 2021-10-07
    • 2021-11-18
    • 2020-10-10
    • 2021-06-20
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多