【发布时间】:2015-05-10 16:21:26
【问题描述】:
在为我们开发的库构建 Android Studio 项目的 Javadocs 时,我们的 Gradle 构建脚本失败,出现如下错误:
/MY_LOCAL_PATH/MyClass.java:5:错误:com.google.gson 包不存在 导入 com.google.gson.Gson;
详情:
我们正在使用Gradle 构建一个Android 库,并希望为它构建Javadocs。
Android Studio 项目被配置为需要 Maven dependency 用于 GSON,尽管我猜测它会发生在每个未明确提供 lib 文件的依赖项上。
当然是我们的一堂课,imports com.google.gson.
这是我们的 Gradle 脚本:
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'
}
以及构建文档的预期任务(基于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'
}
完成此任务时,Gradle 失败并出现以下错误:
/MY_LOCAL_PATH/MyClass.java:5: 错误: com.google.gson 包不存在 导入 com.google.gson.Gson;
/MY_LOCAL_PATH/MyClass.java:6: 错误: com.google.gson 包不存在 导入 com.google.gson.JsonParseException;
/MY_LOCAL_PATH/MyClass.java:7: 错误: com.google.gson 包不存在 导入 com.google.gson.JsonSyntaxException;
/MY_LOCAL_PATH/MyClass.java:8: 错误: com.google.gson.reflect 包不存在 导入 com.google.gson.reflect.TypeToken;
有人对如何解决这个问题有想法吗?
谢谢!
【问题讨论】:
-
带有说明的有用帖子:andydyer.org/blog/2014/09/29/delombok-and-javadoc-with-gradle,但请注意,他排除了他有来源的包,因此他可以按目录排除它们。
-
使用
exclude对你有用吗? -
你的问题解决了吗?
-
排除对我不起作用。实际上,我能找到的唯一解决方法是在 javadoc gradle 任务的类路径中添加构建我的 .aar 时生成的“classes.jar”。但这很混乱,并且改变了构建的顺序。有人找到更清洁的方法吗?我的意思是这似乎是一个非常典型的问题,没有适当的解决方案
标签: android gradle gson javadoc android-gradle-plugin