在kotlin中使用java自定义注释

在kotlin中使用java自定义注释,java,android,kotlin,annotations,Java,Android,Kotlin,Annotations,我已经用java创建了一个自定义注释,并试图在Kotlin编写的类中使用它,但是在编译时,我得到了一个错误 注释参数必须是编译时常量 这是密码 @Target(ElementType.FIELD) @Retention(RetentionPolicy.CLASS) public @interface EdsFieldInfo { int persianName(); String culomnName() default ""; int domainVals() default -1

我已经用java创建了一个自定义注释,并试图在Kotlin编写的类中使用它,但是在编译时,我得到了一个错误

注释参数必须是编译时常量

这是密码

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.CLASS)
public @interface EdsFieldInfo {
  int persianName();
  String culomnName() default "";
  int domainVals() default -1;
}
这就是我使用注释的地方

@EdsFieldInfo(persianName = R.string.customer_file_id, culomnName = "FileId")
@ColumnInfo(name = "FileId", typeAffinity = ColumnInfo.TEXT)
var fileId: String?,
这里显示了错误

persianName = R.string.customer_file_id

我试图找到一个解决办法,但不能请帮我解决这个问题?多谢各位

由于
R
是在编译时编译的,我很怀疑您不能在注释中使用这样的
R.string.customer\u file\u id
变量。也许在Android的构建器真正构建
R
之前,它就已经进化了


所以我恐怕你应该用一个常量来代替。

问题在第一行和第二行:
persianName=R.string.customer\u file\u id,culomname=“FileId”
大部分都是可疑的:
persianName=R.string.customer\u file\u id
-
culomname=“FileId”
name=“FileId”
看一看:这是正确的,但我想知道is在主项目中是如何工作的,在我将代码移动到库项目后,它开始抛出此错误可能您的
R.string.customer\u file\u id
仍在主项目中?如果你将代码移动到另一个模块,我相信它必须在该模块内。不,我很确定我也移动了哪些相关字符串