2015-02-11 17 views
49

Il mio progetto Android si integra bene con lombok 1.16.0, ma una volta che cambio la mia dipendenza in target 1.16.2, ottengo il seguente errore ovunque io ' m utilizzando un'annotazione Lombok:Errore: pacchetto javax.annotation non esiste dopo l'aggiornamento a lombok 1.16.2

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

L'SDK di Android non include tutti i pacchetti javax. Quello che mi chiedo è se questo è un bug in 1.16.2 o devo aggiungere una dipendenza a javax.annotation?

Nota: Questo è in Android Studio con Lombok plug 0.8.8

risposta

90

È possibile disattivare la generazione di javax.annotation.Generated inserendo la seguente riga in un file lombok.config in una delle directory superiore del tuo progetto:

lombok.addGeneratedAnnotation = false 

Vedere configuration documentation per ulteriori informazioni.

Disclosure: I am a Lombok Developer.

+0

Grazie, che lo ha risolto. Ottimo lavoro :) – copolii

+1

La configurazione di Lombok non esiste o funziona con Android Studio al momento giusto? – serkanozel

+0

@RoelSpilker Sei un vero salvatore. Grazie mille per Lombok, è un must in ogni buon toolkit per sviluppatori! ;-) –

23

Se siete di fronte stesso problema in Android Studio utilizzando Gradle - aggiungere la seguente riga al build.gradle:

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

Perché '10.0-b28' in contrasto con' 3.1.1' o '3.2-b06'? 10.x sembra essere 3 anni _older_ rispetto alle altre versioni. –

+7

L'utilizzo di una dipendenza GlassFish non sembra corretto. Preferisco 'compilare 'javax.annotation: jsr250-api: 1.0' per [questa risposta] (http://stackoverflow.com/a/25090868/577062). Tuttavia, 'jsr250-api' è piuttosto vecchio (2007). Nota: sto usando Dagger 2, non Lombok. – anon

-2

La risposta giusta per lo sviluppo Android oggi è quello di utilizzare una versione di pugnale che è maggiore di 2.1 (a causa dello fix menzionato da @tomrozb è integrato in 2.1)

+0

Questo è un problema lombok, non un problema di pugnale – Zoe