当前位置: 首页 > 知识库问答 >
问题:

Gradle Javadoc因“错误:包…不存在”而失败

傅彬
2023-03-14

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

/MY_LOCAL_PATH/MyClass。java:5:error:package-com.google.gson不存在导入com.google.格森。格森;

详情:

我们正在用Gradle构建一个Android库,并希望为它构建Javadocs

Android Studio项目被配置为需要GSONMaven依赖项,尽管我猜测它会发生在没有显式提供lib文件的每个依赖项上。

当然,我们的一个类导入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'
}

以及预期构建文档的任务(基于此问题):

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不存在导入com.google.格森。格森;

/MY_LOCAL_PATH/MyClass.java: 6:错误:包com.google.gson不存在导入com.google.gson.JsonParseExctive;

/MY_LOCAL_PATH/MyClass。java:7:error:package-com.google.gson不存在导入com.google.格森。JsonSyntaxException;

/MY_LOCAL_PATH/MyClass.java: 8:错误:包com.google.gson.reflect不存在导入com.google.gson.reflect.TypeToken;

有人想过怎么解决这个问题吗?

谢谢

共有1个答案

谭凯
2023-03-14

我当时正在从事用gradle构建的java库项目,我在gradle javadocs任务中遇到了类似的问题:

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

我对图书馆的依赖是“组织”。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))

我希望这能帮助别人。

 类似资料:
  • 问题内容: 我有一个目录结构,例如在包含Java文件的根目录下。我在与上述相同的根目录中的目录结构中还有另一个Java文件。我正在从中调用方法,但收到错误消息,该程序包不存在。 我已经在我的java文件中导入了包。能给我一些建议吗? 问题答案: 这有效: com / example / model / BearExtra.java com / example / web / Bear.java 现

  • 问题内容: 当我尝试构建我的android项目时,出现此错误 错误:(8,37)错误:包android.support.design.widget不存在错误:(18,9)错误:找不到符号类TabLayout错误:(18,32)错误:找不到符号类TabLayout错误: (21,33)错误:找不到符号变量TabLayout错误:(27,56)错误:软件包TabLayout不存在错误:(48,36)错

  • 我能够在本地机器上构建java项目,它使用maven成功构建。然而,当我在Jenkins机器上构建它时,我得到了一个编译错误: 包javax.jms不存在 这是什么意思?它在哪里寻找javax。jms?在本地m2回购中,classpath? 我不得不对我的pom进行以下更改。xml使其在Linux上工作: a)明确声明maven-site-plugin版本为2.1。org.apache.maven

  • 我正在使用jid3库从mp3文件中提取信息。我已经下载了jar并将其添加到BlueJ库中。 我的导入线如下 虽然我越来越 我在谷歌上搜索了一段时间,似乎找不到问题所在,有人有什么想法吗?这与这里的库示例中使用的导入行相同 正如图书馆文件所示。 任何帮助将不胜感激,谢谢。

  • 我的主文件夹是ABC里面是2个名为class和src的文件夹,src里面是2个名为ObjtFile和testFile的文件夹,ObjtFile里面是ABC. java,而testFile里面是TestABC. java。(里面的类是一样的,但是. class代替)现在ABC包含 而TestABC。java包含 错误显示TestABC。java:2:错误:包对象文件不存在 导入对象文件。ABC;

  • sources/com/canal/android/external/cplusjni.java:9:错误:package Android.util不存在import Android.util.log;^ sources/com/canal/android/external/cplusjni.java:25:错误:找不到符号 LOG.E(“-----------------------------