颤振热重新加载在android studio(mac)中不起作用
在mac机器上工作时,我发现热加载在Android Studio中不起作用。我不知道怎么了:) 这是不重新加载的代码(我正在将Hello world文本更改为颤振示例文本) 请看下面的视频和链接颤振热重新加载在android studio(mac)中不起作用,android,ios,android-studio,flutter,Android,Ios,Android Studio,Flutter,在mac机器上工作时,我发现热加载在Android Studio中不起作用。我不知道怎么了:) 这是不重新加载的代码(我正在将Hello world文本更改为颤振示例文本) 请看下面的视频和链接 这并没有阻止我的发展,但我担心为什么会发生这种情况 我也有同样的问题。要解决这个问题,您需要更新颤振sdk 在终端中,运行 颤振医生-v flatter升级 另外,从Android studio菜单中尝试文件>使缓存无效/重新启动…这就是您想要的 在文件->设置->键映射中,您应该为该操作指定一些快
这并没有阻止我的发展,但我担心为什么会发生这种情况 我也有同样的问题。要解决这个问题,您需要更新颤振sdk 在终端中,运行
颤振医生-v
flatter升级
另外,从Android studio菜单中尝试
文件>使缓存无效/重新启动…
这就是您想要的
在文件->设置->键映射中,您应该为该操作指定一些快捷键。默认设置为Ctrl+\如果我没有弄错的话,热重新加载会调用小部件的构建方法,因为您所做的更改不是在构建方法内部进行的,它不会更改屏幕上的任何内容 尝试在MyWidget构建方法中更改文本,看看它是否有效
导入“包装:颤振/材料.省道”;
void main(){
runApp(新材料)PP(
家:新脚手架(
appBar:新的appBar(
标题:新文本(“演示项目”),
),
正文:新建MyWidget(),
),
));
}
类MyWidget扩展了无状态Widget{
常量MyWidget({
关键点,
}):super(key:key);
@凌驾
小部件构建(构建上下文){
返回中心(子:新文本(“Hello World!!!”);
}
}
如果其他所有操作都失败,则此操作有效:
1.关闭Android Studio和模拟器
您必须保存在main.dart文件中所做的更改。 在那之后,热重新加载将起作用, 在visual studio上选择“自动保存”选项 那它就可以很好地工作了
*热重新加载需要先保存文件。如何在Linux上的Android Studio 3.6.2和Flatter v1.12.13+修补程序9中的无状态小部件中使用Flatter热重新加载。。。在main.dart文件中: 确保在Android Studio>文件>设置>语言和框架>颤振>选中“保存时执行热加载” 使用下面的代码->更改“Hello”->保存->查看热重新加载结果
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// StatelessWidget turns this class into a widget
Widget build(BuildContext context) {
return MaterialApp(
home: Text('Hello'),
);
}
}
用
StatefulWidget
包装代码,如下面的代码所示。
在观看旧教程时,这可能会令人困惑,因为在早期的颤振版本中,它通常不使用它
导入“包装:颤振/材料.省道”;
void main(){
runApp(newmaterialapp(home:MyApp());
}
类MyApp扩展了StatefulWidget{
MyApp({Key}):超级(Key:Key);
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
@凌驾
小部件构建(构建上下文){
归还新脚手架(
appBar:新的appBar(
标题:新文本(“演示项目”),
),
正文:中间(子项:新文本(“Hello World!!!”),
);
}
}
flatter文档说“热重新加载将代码更改加载到VM中,并重新构建小部件树,保留应用程序状态;它不会重新运行main()或initState()”
因此,如果应用程序逻辑驻留在主方法之外,则热重新加载工作正常。尝试像下面这样重构你的应用程序,然后重新启动(绿色按钮)。保存后,您所做的任何后续更改都将被热重新加载
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: new Scaffold(
appBar: new AppBar(
title: new Text("Demo Project"),
),
body: Center(child: new Text("Hello World!!!")),
),
);
}
}
更新:
如果要添加新资源(如图像或文件),则热重新加载将不起作用。在这种情况下,您必须重新启动应用程序。试试这个 GitHub上的解决方案 Android Studio使用IDEA自动导入文件,如下所示
import 'file///F:/flutter_project/lib/home_page.dart';
换成
import 'package:flutter_project/home_page.dart';
我使用VScode在Windows中进行颤振。在热重新加载时也面临同样的问题。
将Dart和Flatter软件包更新为最新版本,幸运的是它开始工作。将代码放入有状态widge的无状态中。
要进行热重新加载工作代码必须位于有状态小部件的无状态内部。这些可能是由于代码和资源太多而导致的。只需从模拟器中删除应用程序,然后重新运行它。在我的例子中,我只是从手机中删除了旧应用程序。然后从Android Studio运行。也许我试过发布应用程序,但之后没有删除(记不清了)。无论如何,问题解决了 在颤振1.22.6中遇到了相同的问题。但当我使用
Cmd+S
而不是热重新加载(闪电)按钮时,效果很好解决此问题有以下步骤
包:您的文件
不是文件://
flatterclean
然后flatterpub get
在我的项目中,热重新加载突然停止工作。使用Android Studio和Windows
在移动文件时,Android Studio会重构导入,这很整洁。但它将使用绝对导入(C://Users/Projects/../file.dart),这将完全中断热重新加载。移动文件时要小心。这很奇怪,我几年前就遇到过这种情况
import 'package:flutter_project/home_page.dart';