首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我收到错误:在使用Retrofit和Dio时没有找到“Dio”类型

我收到错误:在使用Retrofit和Dio时没有找到“Dio”类型
EN

Stack Overflow用户
提问于 2022-09-16 09:07:24
回答 1查看 91关注 0票数 0

我刚刚将retrofit添加到我的颤振应用程序中,并生成了一个类,解释为这里

但是,当我想运行我的应用程序时,我会得到以下错误:

代码语言:javascript
复制
Running Gradle task 'assembleAppdevDebug'...                    
lib/folder/service.g.dart:14:9: Error: Type 'Dio' not found.

我使用以下依赖项

代码语言:javascript
复制
dependencies:
  dio: ^4.0.6
  retrofit: 3.0.1

dev_dependencies:
  json_serializable: ^6.2.0
  analyzer: ^2.8.0
  build_verify: ^3.0.0
  retrofit_generator: 3.0.1
  build_runner: ^2.1.2

类定义如下所示

代码语言:javascript
复制
@RestApi(baseUrl: 'https://someapi.com/')
abstract classService {
  factory Service(dio.Dio dio, {String baseUrl}) = _Service;

  @Headers({
    'contentType': 'application/json',
  })
  @POST('path')
  Future<User> createUser(
    @Body() User user,
  );
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-16 09:07:24

我发现问题出在哪里了。当我定义抽象类并添加@Header注释时,IDE抱怨DIO和Retrofit都包含一个headers注释,因此我应该指定别名导入:

然后,我指定了import 'package:dio/dio.dart' as dio;

但是,别名导入是生成的_Service文件找不到Dio的原因。

解决方案:

  • 进口改造为import 'package:retrofit/retrofit.dart' as rf;
  • 将标头定义为rf.Headers()
代码语言:javascript
复制
@rf.Headers({
    'contentType': 'application/json',
})
@POST('path')
Future<User> createUser(
  @Body() User user,
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73742477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档