2015-02-11 17 views
49

Mein Android-Projekt baut gut mit Lombok 1.16.0, aber sobald ich meine Abhängigkeit zu Ziel 1.16.2 ändern, bekomme ich den folgenden Fehler überall ich ' m eine lombok Anmerkung mit:Fehler: Paket javax.annotation existiert nicht nach dem Upgrade auf lombok 1.16.2

Error:(20, 1) error: package javax.annotation does not exist

Das Android SDK nicht alle javax Pakete enthält. Was ich frage mich ist, ob dies ein Fehler in 1.16.2 ist oder muss ich nun eine Abhängigkeit zu javax.annotation hinzufügen?

Hinweis: Dies ist in Android Studio mit Lombok Plugin 0.8.8

Antwort

90

Sie die Erzeugung von javax.annotation.Generated, indem Sie die folgende Zeile in einer lombok.config Datei in einer der Top-Verzeichnisse Ihres Projekts deaktivieren können:

lombok.addGeneratedAnnotation = false 

Weitere Informationen finden Sie unter configuration documentation.

Offenlegung: Ich bin ein Lombok Entwickler.

+0

Danke, das hat es behoben. Toller job btw :) – copolii

+1

Lombok config existiert nicht oder arbeite mit Android Studio zur Zeit richtig? – serkanozel

+0

@RoelSpilker Du bist ein Lebensretter. Vielen Dank für Lombok, es ist ein Muss in jedem guten Entwickler-Toolkit! ;-) –

23

Wenn Sie in Android Studio gleichen Problem konfrontiert sind gradle mit - fügen Sie folgende Zeile build.gradle:

provided 'org.glassfish:javax.annotation:10.0-b28' 
+0

Warum '10.0-b28' im Gegensatz zu' 3.1.1' oder '3.2-b06'? 10.x scheint 3 Jahre _older_ als die anderen Versionen zu sein. –

+7

Die Verwendung einer GlassFish-Abhängigkeit scheint nicht richtig zu sein. Ich bevorzuge "kompilieren" javax.annotation: jsr250-api: 1.0' pro [diese Antwort] (http://stackoverflow.com/a/25090868/577062). Allerdings ist 'jsr250-api' ziemlich alt (2007). Hinweis: Ich benutze Dolch 2, nicht Lombok. – anon

-2

Die richtige Antwort für Android Entwicklung heute ist eine Version von Dolch zu verwenden, die größer ist als 2.1 (wegen der von @Tomrozb fix ist in 2.1 integriert)

+0

Dies ist ein Lombok-Problem, kein Dolch-Problem – Zoe