Flutter build_runner在添加第三方生成器时无法构建

问题描述 投票:0回答:1

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

不支持的操作:无法解决文件:/// C:/ Users / User / AndroidStudioProjects / digigad / lib / resources / network / repository.dart;仅支持“打包”和“资产”方案[SEVERE] retrofit_generator: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)
            ],
          ),
        ),
      ),
    );
  }
}
flutter dart
1个回答
0
投票
我也遇到相同的错误,并且知道我的项目文件中有一些直接导入语句。

该导入语句为

login_page.dart

import 'file:///D:/Major_Project/connect/lib/api/api.dart';
在这种情况下,在构建中会抛出相同的错误enter image description here

因此在项目中找到该语句,并使用普通的import语句对其进行更改

login_page.dart

import 'package:connect/api/api.dart';
© www.soinside.com 2019 - 2024. All rights reserved.