如何在Kotlin中使用AndroidAnnotation @SharedPref

时间:2017-07-07 13:39:18

标签: android kotlin android-annotations kotlin-android-extensions

我正在尝试在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()

2 个答案:

答案 0 :(得分:3)

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

kapt {
  correctErrorTypes = true
}

同时确保您使用的是最新的Kotlin版本(截至目前为止:1.1.3)。

答案 1 :(得分:0)

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

将其添加到我的应用程序标签构建包中。

kapt { correctErrorTypes = true }

我无法运行我的应用。

  

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

谢谢@WonderCsabo