Our Gradle build script fails when building Javadocs for Android Studio project for a library we develop, with errors like:
/MY_LOCAL_PATH/MyClass.java:5: error: package com.google.gson does not exist import com.google.gson.Gson;
Details:
We are building an Android library with Gradle, and want to build the Javadocs for it.
The Android Studio project is configured to require a Maven dependency for GSON, although I'm guessing it would happen with every dependency whose lib file is not provided explicitly.
One of our classes, of course, imports com.google.gson.
Here is our Gradle script:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
apply plugin: 'com.android.library'
android {
compileSdkVersion 19
buildToolsVersion '21.1.2'
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
versionCode 8000
versionName "0.8.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.code.gson:gson:2.2.4'
}
And the task that's expected to build the docs (based on this question):
task generateJavaDocs(type:Javadoc) {
source = 'src/main/java/com'
ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
classpath = files(source) + files(ext.androidJar)
options.memberLevel = JavadocMemberLevel.PUBLIC
include '**/*.java'
exclude '**/BuildConfig.java'
exclude '**/R.java'
}
When reaching this task, Gradle fails with these errors:
/MY_LOCAL_PATH/MyClass.java:5: error: package com.google.gson does not exist import com.google.gson.Gson;
/MY_LOCAL_PATH/MyClass.java:6: error: package com.google.gson does not exist import com.google.gson.JsonParseException;
/MY_LOCAL_PATH/MyClass.java:7: error: package com.google.gson does not exist import com.google.gson.JsonSyntaxException;
/MY_LOCAL_PATH/MyClass.java:8: error: package com.google.gson.reflect does not exist import com.google.gson.reflect.TypeToken;
Anyone has a thoughts on how to solve this?
Thanks!
I was working on java-library project built with gradle and I had a similar issue with gradle javadocs task:
task javadocs(type: Javadoc) {
source = sourceSets.main.java.srcDirs
exclude '**/R.html', '**/R.*.html', '**/index.html'
}
My library dependency was 'org.json:json:20180130' and my javadocs task was failing with error:
error: package org.json does not exist
I fixed it by adding classpath to javadocs task like this:
task javadocs(type: Javadoc) {
source = sourceSets.main.java.srcDirs
classpath = sourceSets.main.runtimeClasspath
exclude '**/R.html', '**/R.*.html', '**/index.html'
}
If you are working with Android plugin instead of standard java library you can get the classpath like this:
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
I hope this helps someone.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With