添加第三方生成器时,Flutter build_runner 构建失败

标签 flutter dart

我写了一个 flutter 项目,它工作正常,我能够正确构建它,但是当我添加 retrofit_generator 时,构建失败了,如果我删除生成器,代码运行良好,构建也会成功。这是错误,

不支持的操作:无法解决
file:///C:/Users/User/AndroidStudioProjects/digigad/lib/resources/network/reposi
tory.dart;仅支持“包”和“ Assets ”方案
[严重] 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';

在这种情况下,在构建中抛出了相同的错误
Log

所以在项目中找到该语句并使用正常的导入语句更改它

login_page.dart
import 'package:connect/api/api.dart';

关于添加第三方生成器时,Flutter build_runner 构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61936143/

相关文章:

javascript - 单击本地推送通知时如何在 flutter 中导航和重新加载页面

flutter 测试 : MissingPluginException(No implementation found for method getAll on channel plugins. flutter.io/shared_preferences)

flutter - 如何使启动画面出现得更快?

dart - Flutter 相当于 Swift 的 NotificationCenter?

dart - RenderCustomMultiChildLayoutBox 对象在布局错误期间被赋予无限大小

http - Dart session

redux - 如FlutterByExample中所述,无法使用flutter,redux和firebase-auth登录

dart - 是否有异步错误的全局处理程序?

c++ - Release模式下的 Dartium 构建错误

user-interface - Flutter 如何绘制自定义渐变