2013-05-17 11 views
7

ambiente di configurazione

  • com.android.tools.build:gradle:0.4
  • versione 1.6 Gradle
  • JDK 1.6 (OSX)
  • strumenti Android versione build 17
  • compilazione SDK versione 17

L'i Il fatto che sembri averlo è che non riesco a escludere il lombok dall'aggiunta all'apk. Ho provato a farlo con la creazione di una configurazione fornita come questo:Gradle Configurazioni non funziona come previsto a New Android Build System

configurations { 
    provided 
} 

sourceSets { 
    main { compileClasspath += configurations.provided } 
} 

e quindi aggiungendo la dipendenza come questo:

dependencies { 
    provided ‘org.projectlombok:lombok:0.11.8′ 
} 

Ma sto ancora ricevendo questo errore:

Error: duplicate files during packaging of APK <myapp>.apk 
Path in archive: LICENSE 
Origin 1: /<home>/.gradle/caches/artifacts-24/filestore/org.projectlombok/lombok/0.11.8/jar/e43ce2be16d8990568a4182c0bf996ad3ff0ba42/lombok-0.11.8.jar 
Origin 2: /<home>/.gradle/caches/artifacts-24/filestore/org.sonatype.sisu.inject/cglib/2.2.1-v20090111/jar/7ce5e983fd0e6c78346f4c9cbfa39d83049dda2/cglib-2.2.1-v20090111.jar 
:packageRelease FAILED 

Ho provato a utilizzare lombok-api.jar che causa un problema diverso riguardo ad alcune annotazioni di AccessLevel durante l'esecuzione di dex.

Il che suggerisce che è incluso il file jar lombok nell'apk. Questo non dovrebbe accadere, qualche suggerimento?

risposta

5

Non è possibile utilizzare i set di origine perché vengono utilizzati quelli personalizzati. Avresti per effettuare le seguenti operazioni:

android.applicationVariants.each { variant -> 
    variant.javaCompile.classpath += configurations.provided. 
} 

Tuttavia, dovrebbe essere possibile rimuovere invece la dipendenza dal nostro config "pacchetto" Guarderò in esso (che sostituisce il "runtime" uno.).

+1

Grazie per la risposta, ho apportato le modifiche che hai suggerito ma sto ancora ricevendo lo stesso errore, la mia sensazione è che il plugin gradle deve usare il compileClassPath come una sorta di percorso di inclusione da qualche parte, se ci è un modo per escludere le librerie dall'importazione nell'apk che sarebbe grandioso, dobbiamo usare questo per mobeam anche quest'anno. –

+1

scusa per la confusione, ho appena realizzato che avevo una dipendenza che trascinava anche il lombok, ora l'ho escluso dalla dipendenza dalla libreria e ho ancora il codice gradle configurato come hai elencato qui, ma ora sembra che la libreria manca dal percorso di compilazione quando si esegue compileRelease –

+0

FYI, stampando android.applicationVariants, mi dà un array vuoto (ex []), non so se questo aiuti. Sono stato alla ricerca di ulteriori informazioni su ApplicationVariants, sembra fosse prima buildVariants e ora le sue applicationVarianti. Sembra che ci siano stati molti cambiamenti tra 0.3 e 0.4 di questo strumento di compilazione, la documentazione sul sito si riferisce ancora a 0.3 –

Problemi correlati