flutter - Flutter build_runner 添加第三方生成器时构建失败
问题描述
我编写了一个运行良好的颤振项目,并且能够正确构建它,但是当我添加 retrofit_generator 时构建失败,如果我删除生成器,代码运行正常并且构建也成功。这是错误,
不支持的操作:无法解析文件:///C:/Users/User/AndroidStudioProjects/digigad/lib/resources/network/repository.dart;仅支持“package”和“asset”方案 [SEVERE] retrofit_generator:retrofit on lib/ui/login/login_view.dart:
这是我的 login_view.dart 代码
class LoginView extends StatefulWidget {
@override
_LoginViewState createState() => _LoginViewState();
}
class _LoginViewState extends State<LoginView> {
LoginViewModel _loginViewModel;
@override
void initState() {
super.initState();
_loginViewModel = locator<LoginViewModel>();
}
@override
Widget build(BuildContext context) {
return ViewModelBuilder<LoginViewModel>.nonReactive(
builder: (context, model, child) {
return Scaffold(
backgroundColor: Colors.white,
body: SafeArea(
child: Padding(
padding: const EdgeInsets.all(30.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Container(
child: Center(
child: Container(
child: Image.asset('images/iv_logo.png'),
width: 100,
height: 100,
),
),
),
Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
_socialButton(
image: 'icons/ic_facebook.png',
title: 'Facebook'),
SizedBox(
width: 30,
),
_socialButton(
image: 'icons/ic_google.png', title: 'Google'),
],
),
SizedBox(
height: 30,
),
Text(
'or',
style: TextStyle(
fontSize: 15, color: AppConstants.colorHint),
),
SizedBox(
height: 20,
),
StreamBuilder<String>(
stream: model.phoneStream,
builder: (context, snapshot) {
return Column(
children: <Widget>[
AppFunctions.getTextInputField(
hintText: 'Mobile Number',
maxLength: 10,
inputType: TextInputType.phone,
onChanged: model.onPhoneChanged,
errorText: snapshot.error),
AppFunctions.getStandardDivider(),
AppFunctions.getBigButton(
title: 'Login',
color: snapshot.hasData
? AppConstants.colorPrimary
: AppConstants.colorHint,
onClick: snapshot.hasData
? () => _loginViewModel
.onLoginClicked(snapshot.data)
: () => () {},
)
],
);
}),
],
),
Center(
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Made with '),
Icon(
Icons.favorite,
color: Colors.red,
),
Text(' in Flutter'),
],
),
),
],
),
),
),
);
},
viewModelBuilder: () => _loginViewModel);
}
Expanded _socialButton({String image, String title}) {
return Expanded(
child: Container(
height: 40,
child: RaisedButton(
onPressed: () {},
color: Colors.white,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Image.asset(
image,
width: 16,
height: 16,
),
SizedBox(
width: 10,
),
Text(title)
],
),
),
),
);
}
}
解决方案
我也遇到了同样的错误,并且知道我的项目文件中有一些直接导入语句。
该导入语句是login_page.dart
import 'file:///D:/Major_Project/connect/lib/api/api.dart';
在这种情况下,构建 日志中引发了相同的错误
所以在项目中找到那个语句,用正常的import语句改一下
login_page.dart
import 'package:connect/api/api.dart';
推荐阅读
- python - 为什么我在 web3py 模块安装过程中不断收到此错误
- python - 是否有将 MP3 文件转换为包含以下列([seconds]、[Frequnecy])的数据帧的 python 代码?
- docker - Docker - 从私有网络访问主机
- python - Python 进程 TypeError: no default __reduce__ due to non-trivial __cinit__
- apache-spark - 分配最大 spark.driver.memory
- javascript - Angular12 中的兄弟组件如何监听彼此的事件?
- python - 有没有办法用 Selenium 提取 CSS 选择器?
- java - 将应用程序构建到 jar 后资源未加载
- python - 在括号中切换多行或单行 Vim
- regex - 正则表达式匹配第二行中一组数字中的第二个数字