我刚刚将retrofit添加到我的颤振应用程序中,并生成了一个类,解释为这里。
但是,当我想运行我的应用程序时,我会得到以下错误:
Running Gradle task 'assembleAppdevDebug'...
lib/folder/service.g.dart:14:9: Error: Type 'Dio' not found.我使用以下依赖项
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类定义如下所示
@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,
);
}发布于 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()@rf.Headers({
'contentType': 'application/json',
})
@POST('path')
Future<User> createUser(
@Body() User user,
);https://stackoverflow.com/questions/73742477
复制相似问题