0

Ich versuche AndroidAnnotations zu verwenden @SharefPref innerhalb Kotlin, aber Iget folgende FehlerWie AndroidAnnotation @SharedPref mit Kotlin

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

Was mache ich falsch zu benutzen?

//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() 
+1

Ist die Fehlermeldung nicht selbsterklärend? 'MyPreferences' erweitert' SharedPreferencesHelper' nicht. – azizbekian

+0

@azizbekian Nein, ist es nicht. Die Arbeit mit 'Kotlin' und' Annotations' wirft manchmal Fehler auf, die nicht auf das eigentliche Problem bezogen sind. Dies geschieht, wenn der mit Anmerkungen versehene Code generiert wird. (siehe folgende Lösung) – longilong

Antwort

0

ist dies auf eine in der bug Kotlin Annotations-Prozessor.
Um dies zu beheben, you must addcorrectErrorTypes = true zu Ihrem kapt Block.

kapt { 
    correctErrorTypes = true 
} 

Stellen Sie außerdem sicher, dass Sie die neueste Version von Kotlin verwenden (ab diesem Zeitpunkt: 1.1.3).

+0

Ich habe den Fehlerbericht bei Android-Annotationen gefunden, aber er hat nichts über das Hinzufügen von 'correctErrorTypes' gesagt (https://github.com/androidannotations/androidannotations/issues/334) Danke! – longilong

+0

Sie haben das falsche Problem gefunden, es wurde im Jahr 2012 gemeldet. :) – WonderCsabo

+0

: D omg ... Zeit für eine Pause und Bier, denke ich .... – longilong