如何在 Kotlin 中使用 AndroidAnnotation @SharedPref

How to use AndroidAnnotation @SharedPref with Kotlin

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

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()

这是由于 Kotlin 注释处理器中的 bug
要解决此问题,请将 you must add correctErrorTypes = true 添加到您的 kapt 块。

kapt {
  correctErrorTypes = true
}

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

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

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

kapt { correctErrorTypes = true }

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

Then I closed my android studio and then run Android studio again as administrator. Voila! it works like charm.

谢谢@WonderCsabo