Android 为什么在尝试访问常量值时出现未解析的引用?

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

应用程序在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_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