【发布时间】:2021-11-11 01:57:48
【问题描述】:
我正在开发一个请求火星照片并使用它在屏幕上显示的 Android 应用程序。 发出请求。并尝试使用公开延迟初始化改造服务的公共 Api 对象。 以下是有错误的源代码
import retrofit2.Retrofit
import retrofit2.converter.scalars.ScalarsConverterFactory
import retrofit2.http.GET
class MarsApiService {
public val retrofit = Retrofit.Builder()
.addConverterFactory(ScalarsConverterFactory.create())
.baseUrl(Companion.BASE_URL)
.build()
interface MarsApiService{
@GET("photos")
fun getPhotos(): String
}
object MarsApi {
val retrofitService: MarsApiService by lazy { retrofit.create(MarsApiService::class.java) }
}
companion object {
private const val BASE_URL = "https://android-kotlin-fun-mars-server.appspot.com"
}
}
对象 MarsApi 内的代码第 17 行弹出错误未解决的参考:改造。对 Retrofit 对象的 create() 函数调用成本很高,并且应用程序只需要一个 Retrofit API 服务实例。所以,我使用对象声明将服务暴露给应用程序的其余部分。
我尝试过的:
如果我将对象 MarsApi 中的代码带出,代码就可以工作,但这样做可能会导致多个改造实例。
【问题讨论】:
标签: android-studio kotlin retrofit