4

我正在尝试@SharefPref在 kotlin 中使用 AndroidAnnotations,但出现以下错误

org.androidannotations.annotations.sharedpreferences.Pref can only be used on an element that extends org.androidannotations.api.sharedpreferences.SharedPreferencesHelper

我究竟做错了什么?

//Interface
@SharedPref(SharedPref.Scope.APPLICATION_DEFAULT)
open interface MyPreferences {
    @DefaultInt(-1)
    fun someIntValue():Int
}

//Fragment
@Pref
lateinit open var sharedPref:CongressPreferences_

//usage within fragment
val get: Int = sharedPref.selectedEventId().get()
4

2 回答 2

5

这是由于Kotlin 注释处理器中的错误造成的。
要解决此问题,您必须添加 correctErrorTypes = true到您的kapt块中。

kapt {
  correctErrorTypes = true
}

还要确保您使用的是最新的 Kotlin 版本(截至目前:1.1.3)。

于 2017-07-07T14:08:59.763 回答
0

我只想扩展@WonderCsabo 的答案。他的回答几乎救了我,但不完全。

将此添加到我的应用程序标签构建 gradle 后。

kapt { correctErrorTypes = true }

我无法运行我的应用程序。

然后我关闭了我的 android studio,然后以管理员身份再次运行 Android studio。瞧!它就像魅力一样。

谢谢@WonderCsabo

于 2019-01-29T19:56:58.870 回答