提问人:RusArtM 提问时间:10/25/2023 更新时间:10/25/2023 访问量:33
使用 minifyEnabled 时缺少改造接口的注释
Missing annotations for retrofit interace when using minifyEnabled
问:
在没有(调试构建)的情况下运行构建时,一切正常,但是当使用构建时,调用 时会出现运行时错误。minifyEnabled
minifyEnabled
Repository.getData
该错误是关于缺少注释等。GET
PUT
有两个 retrofit2 接口具有一个超级接口:
interface Api1 : Api {
@GET("/api/v1/data")
override suspend fun loadData(): List<Entry>
}
interface Api2 : Api {
@GET("/api/v1/data2")
override suspend fun loadData(): List<Entry>
}
interface Api {
suspend fun loadData(): List<Entry>
}
有一个 dagger2 模块,可为以下接口提供改造:
@Provides
fun provideApi1(retrofit: Retrofit): Api1 = retrofit.create(Api1::class.java)
@Provides
fun provideApi2(retrofit: Retrofit): Api2 = retrofit.create(Api2::class.java)
有些在存储库中有这样的调用:
class RepositoryImpl @Inject constructor(
val api1: Api1,
val api2: Api2
) : Repository {
fun getData(param: Boolean) = flow {
val api = if (param) api1 else api2
emit(api.loadData())
}
}
我尝试为注释和接口添加 keepclasses 以保护规则。这无济于事。
答: 暂无答案
评论