android android-gradle javadoc

La anotación javadoc de Gradle para Android no existe



android-gradle (5)

Desde la introducción de la api y la configuración de dependencia de implementation en Android Gradle 3.0.0 , la compile está en desuso. Para incluir una dependencia de implementation en la ruta de share javadoc, actualicé la share :

task javadoc(type: Javadoc) { source = android.sourceSets.main.java.srcDirs configurations.implementation.setCanBeResolved(true) classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + configurations.implementation }

No espero que esta sea la solución más limpia posible. Probablemente hay una razón por la que la configuration.implementation no se puede resolver de forma predeterminada.

Estoy tratando de construir un aar para publicar en jcenter.

La tarea assembleRelease funciona bien, la tarea javadoc también funciona bien, pero la tarea javadocJar genera este error:

/Users/martinmoreno/Projects/android-dev-utils/dev-utils/src/main/java/com/tinchoapps/devutils/BitmapUtils.java:11: error: el paquete android.support.annotation no existe
importar android.support.annotation.NonNull;

Aquí está el archivo de gradle (simplificado):

apply plugin: ''com.android.library'' apply plugin: ''com.github.dcendents.android-maven'' android { ... buildTypes { release { minifyEnabled false shrinkResources false proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro'' signingConfig signingConfigs.debug } } ... } ... dependencies { compile fileTree(include: [''*.jar''], dir: ''libs'') compile ''com.android.support:support-annotations:20.0.0'' compile ''com.android.support:support-v4:22.0.0'' } task sourcesJar(type: Jar) { from android.sourceSets.main.java.srcDirs classifier = ''sources'' } task javadoc(type: Javadoc) { source = android.sourceSets.main.java.srcDirs classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) destinationDir = file("../javadoc/") } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = ''javadoc'' from javadoc.destinationDir } artifacts { archives sourcesJar archives javadocJar }

Parece estar relacionado con las dependencias porque está dando algunas excepciones de "clase no encontrada" también en las clases dentro de las importaciones, pero no puede averiguar qué está mal.

¿Alguna idea?


Esto corrigió varios errores similares para mí:

Agregue lo siguiente a build.gradle:

configurations { javadocDeps } dependencies { compile ''com.android.support:support-annotations:22.2.0'' javadocDeps ''com.android.support:support-annotations:22.2.0'' androidTestCompile ''junit:junit:4.+'' androidTestCompile ''com.jayway.android.robotium:robotium-solo:+'' }

En la tarea JavaDoc agregar esta línea:

classpath += configurations.javadocDeps


He enfrentado esto mientras ejecutaba ./gradlew install . Ocurría cuando se estaban compilando los JavaDocs (hasta donde puedo entender).

Acabo de agregar failOnError false a la task javadoc .

task javadoc(type: Javadoc) { source = android.sourceSets.main.java.srcDirs classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) failOnError false }

Lo que entiendo es que evitamos fallas en las advertencias de que no se pudo encontrar la biblioteca de anotaciones.


Siguiendo la respuesta de Markus, así es como tuve que hacerlo para que funcione:

configurations { javadocDeps } dependencies { compile ''com.android.support:support-annotations:25.3.1'' javadocDeps ''com.android.support:support-annotations:25.3.1'' } tasks.whenTaskAdded { task -> if (task.name == ''androidJavadocs'') { task.configure { classpath += configurations.javadocDeps } } }


Solo agregue esta línea en su tarea javadoc (note la última parte: + configurations.compile ):

classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + configurations.compile

La última parte de la línea se asegura de que javadoc use las dependencias de compilación para resolver las clases que usa para javadoc. En este punto, ya no debería fallar.