android - Gradle Javadoc 失败并显示 "error: package ... does not exist"

标签 android gradle gson javadoc android-gradle-plugin

为我们开发的库构建 Android Studio 项目的 Javadocs 时,我们的 Gradle 构建脚本失败,出现如下错误:

/MY_LOCAL_PATH/MyClass.java:5: error: package com.google.gson does not exist import 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: 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;



有人对如何解决这个问题有想法吗?

谢谢!

最佳答案

我正在研究用 gradle 构建的 java-library 项目,我在 gradle javadocs 任务中遇到了类似的问题:

task javadocs(type: Javadoc) {
  source = sourceSets.main.java.srcDirs
  exclude '**/R.html', '**/R.*.html', '**/index.html'
}

我的库依赖项是 'org.json:json:20180130' 并且我的 javadocs 任务失败并出现错误:
error: package org.json does not exist

我通过将类路径添加到 javadocs 任务来修复它,如下所示:
task javadocs(type: Javadoc) {
  source = sourceSets.main.java.srcDirs
  classpath = sourceSets.main.runtimeClasspath
  exclude '**/R.html', '**/R.*.html', '**/index.html'
}

如果您使用的是 Android 插件而不是标准的 java 库,您可以像这样获得类路径:
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))

我希望这可以帮助别人。

关于android - Gradle Javadoc 失败并显示 "error: package ... does not exist",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28943231/

相关文章:

java - 插页式广告未展示

android - 可以在什么 Android 平台上编程?

android - 错误 :(3) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'

java - Gluon Project-当我运行/.gradle运行时找不到Springboot依赖关系

GSON JsonElement.getAsString 与 JsonElement.toString?

java - 如何将 JSON URL 中的字符串结果拆分为单个 java 对象

android - 用相机拍照并将路径发送到其他 Activity

java - 为什么列表数组在 onCreate 方法中失去其值?

java - HSQLDB在Spring项目中的持久性

android - 改造 body 返回空