Android 为什么在尝试访问常量值时出现未解析的引用?
应用程序在Kotlin singleton对象中定义常量:Android 为什么在尝试访问常量值时出现未解析的引用?,android,android-studio,kotlin,Android,Android Studio,Kotlin,应用程序在Kotlin singleton对象中定义常量: @file:JvmName("APIConstants") package com.myapp.api object APIConstants { const val HTTP_RESPONSE_CODE_NOT_AUTHORIZED = 401 etc.... } 然后在另一类中使用它们: import com.myapp.api.APIConstants.HTTP_RESPONSE_CODE_NOT_AUTHOR
@file:JvmName("APIConstants")
package com.myapp.api
object APIConstants {
const val HTTP_RESPONSE_CODE_NOT_AUTHORIZED = 401
etc....
}
然后在另一类中使用它们:
import com.myapp.api.APIConstants.HTTP_RESPONSE_CODE_NOT_AUTHORIZED
etc ...
class API {
private fun returnBadResponse(response: Response<*>, callback: ApiAuthListener<*>) {
if (response.code() == HTTP_RESPONSE_CODE_NOT_AUTHORIZED) {
callback.onBadAuthToken()
} else {
callback.onFailure(response.message(), getServerError(response))
}
}
我尝试过清除IDE缓存并重新启动它,然后进行干净的构建,这没有什么区别。我已经尝试删除@JvmName注释,甚至将const值放在文件的根目录中,没有包含对象,但都不允许生成
为什么类不能引用常量,特别是当IDE强烈建议它可以解析常量时?而解决方案是。。。。确保所有Kotlin源文件都有.kt文件扩展名!在本例中,APIConstants文件被称为“APIConstants”,而不是“APIConstants.kt”,这似乎意味着IDE能够根据文件的内容解析引用,但构建工具无法。令人困惑的是,Android Studio在文件名上显示了一个Kotlin K图标,尽管没有.kt扩展名
Error: Unresolved reference: HTTP_RESPONSE_CODE_NOT_AUTHORIZED