Generate javadoc fail on BuildConfig

Viewed 225

I am trying to generate a Javadoc to be saved on my desktop for my project by using a task in the Gradle. This is my code in the build.gradle:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 28

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

    }
}


task generateJavadoc() {
    group "reporting"
    description "Generates Javadoc."
}

android.libraryVariants.all { variant ->

    def task = project.tasks.create("generate${variant.name.capitalize()}Javadoc", Javadoc) {
        title "API Documentation (${project.android.defaultConfig.versionName})"
        group "ApiDoc"
        description "Generates Javadoc for $variant.name."
        destinationDir = reporting.file("/home/<user>/Desktop/myJavaDoc") //optional

        // Source files from the variant
        source = variant.sourceSets.collect { it.java.sourceFiles }.inject { m, i -> m + i }

        // To fix issue: Error: Can not create variant 'android-lint' after configuration ': library: debugRuntimeElements' has been resolved
        doFirst {
            classpath = project.files(variant.javaCompileProvider.get().classpath.files,
                    project.android.getBootClasspath())
        }

        if (JavaVersion.current().isJava8Compatible()) {
            options.addStringOption('Xdoclint:none', '-quiet')
        }

        exclude "**/R"
        exclude "**/R.**"
        exclude "**/R\$**"
        exclude "**/BuildConfig*"
        //exclude "**/sdk/BuildConfig"
        exclude '**/*.kt'

        if (JavaVersion.current().isJava8Compatible()) {
            options.addStringOption('Xdoclint:none', '-quiet')
        }

        options.windowTitle = "API Documentation (${project.android.defaultConfig.versionName})"
        options.memberLevel = JavadocMemberLevel.PROTECTED
        options.linkSource false
        options.author = false

        failOnError true
    }

    task.dependsOn "assemble${variant.name.capitalize()}"
    generateJavadoc.dependsOn task
}

dependencies {
....

I excluded the BuildConfig, but still, the task fails saying "cannot find symbol class BuildConfig":

error: cannot find symbol import com.name.sdk.BuildConfig; ^ symbol: class BuildConfig location: package com.name.sdk

I already tried to invalidate the cache, clean and rebuild the project without success.

I also added as suggested in previous question about the topic:

buildConfigField "String", "FOO", ""foo""

but even doing so did not solve the problem

What am I doing wrong?

1 Answers

Try exclude "**/BuildConfig.java", "**/R.java". And don't options.addStringOption('Xdoclint:none', '-quiet') twice ...
instead use options.verbose() to see what the problem may be.

Related