2016-05-19 41 views
9

sto generando javadoc per il mio progetto Android con questo compito Gradle:modo diritto di escludere R.java da javadoc utilizzando Gradle

android.applicationVariants.all { variant -> 
    task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) { 
     description "Generates Javadoc for $variant.name." 
     source = variant.javaCompile.source 
     classpath = files(variant.javaCompile.classpath.files, project.android.getBootClasspath()) 
     exclude '**/BuildConfig.java' 
     exclude '**/R.java' 
     options.links("http://docs.oracle.com/javase/7/docs/api/"); 
     options.linksOffline("http://d.android.com/reference","${android.sdkDirectory}/docs/reference"); 
     options { 
      failOnError false 
     } 
     destinationDir = file("${project.projectDir}/javadoc") 
    } 
} 

Esclude R.java, quindi non ho ricevuto R.html in uscita dir. Tuttavia, sto diventando molto fastidioso errori cannot find symbol class R nel processo di generazione di documenti per le mie solite classi java, nella riga import com.mypackagename.R. Io uso cose comuni Android come R.string.string_res, quindi non posso rimuovere questa importazione. Esiste un modo corretto di includere il simbolo R in indice, ma non di includerlo in un javadoc o, almeno, semplicemente di sopprimere questo errore?

risposta

2

Si può provare ad aggiungere due righe di codice:

classpath += files("build/generated/source/r/${variant.flavorName}/release") 
classpath += files("build/generated/source/buildConfig/${variant.flavorName}/release") 

Ma in questo caso il vostro compito dovrebbe dipendere uno dei compiti che genera le classi R.