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

Android Gradle javadoc注释不存在

师建德
2023-03-14

我正在尝试构建一个aar,以便在jcenter上发布。

assembleRelease任务工作正常,javadoc任务也工作正常,但javadocJar任务输出以下错误:

/Users/martinmoreno/Projects/android-dev-utils/dev-utils/src/main/java/com/tinchoapps/devutils/BitmapUtils.java:11:错误:包android.support.annotation不存在
导入android.support.annotation.非空;

以下是(简化的)gradle文件:

apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'


android {
    ...
    buildTypes {
        release {
            minifyEnabled false
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.debug
        }
    }
...
}

...

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:support-annotations:20.0.0'
    compile 'com.android.support:support-v4:22.0.0'
}

task sourcesJar(type: Jar) {
    from android.sourceSets.main.java.srcDirs
    classifier = 'sources'
}

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    destinationDir = file("../javadoc/")
}

task javadocJar(type: Jar, dependsOn: javadoc) {
    classifier = 'javadoc'
    from javadoc.destinationDir
}

artifacts {
    archives sourcesJar
    archives javadocJar
}

它似乎与依赖项有关,因为它在导入中的类上也给出了一些“未找到类”异常,但无法找出问题所在。

有什么想法吗?

共有3个答案

吕利
2023-03-14

因为在Android Gradle 3.0.0中引入了api实现依赖配置,所以不建议使用编译。为了在javadoc类路径中包含实现依赖,我更新了Loius CAD的答案:

task javadoc(type: Javadoc) {
    source = android.sourceSets.main.java.srcDirs
    configurations.implementation.setCanBeResolved(true)
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + configurations.implementation
}

我不认为这是可能的最干净的解决方案。配置可能是有原因的。默认情况下,实现不可解析

尚河
2023-03-14

只需在javadoc任务中添加这一行(注意最后一部分:configurations.compile):

classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + configurations.compile

该行的最后一部分确保javadoc使用编译依赖项来解析它用于javadoc的类。在这一点上,它不应该再失败了。

郗俊能
2023-03-14

这为我修复了各种类似的错误:

添加以下内容进行构建。格雷德尔:

configurations {
    javadocDeps
}

dependencies {
    compile 'com.android.support:support-annotations:22.2.0'
    javadocDeps 'com.android.support:support-annotations:22.2.0'
    androidTestCompile 'junit:junit:4.+'
    androidTestCompile 'com.jayway.android.robotium:robotium-solo:+'
}

在JavaDoc任务中添加以下行:

classpath += configurations.javadocDeps
 类似资料:
  • 我正在尝试使用静态编程语言反射从类及其成员生成JFrames。我创建了几个注释,其中一些在运行时存在,一些不存在。 组件注释: 启用注释: 我是这样使用这两个注释的: 如果我运行下面的代码: 我得到的唯一输出是这样的:< code>btn: [Component] 由于Retention设置为

  • 我正在尝试实现解析器模式(策略模式)。 所以我有一个自定义注释 和作为枚举类 现在我有接口 有5个实现,其中一个是 我有解析器是这样的 现在问题出在init()方法中,的所有服务实现都出现在列表中,但当我试图查找注释时,它的值为null。我检查了方法,其中annotationData有0个注释。如果我自动连接PaymentService的任何特定实现,那么我就能够获得注释值。请帮我理解我错过了什么

  • 问题内容: 运行我的Android应用程序时出现此错误: 在类[[Lmodel.Vak;中,没有字段具有DatabaseField注释。 我的班级Vak有注解,所以我真的不明白为什么它仍然给我这个错误。 我有一个名为Databasehelper.java的文件,在其中扩展了OrmLiteSqLiteOpenHelper,该文件如下所示: 我还有一个扩展OrmLiteBaseActivity的文件控

  • 我正在使用反射在类中查找方法,并获得注释“Permes siNecessari”,该注释描述了方法实现的操作类型(CREATE,DELETE,...)。 这是一个实现picketlink类PathAuthorzer的授权检查。我得到一个叫做url,我把它拆分,从url中我找到了实现网络服务的类。然后我搜索它将被调用的方法,并阅读它使用的操作类型。 这是搜索方法的一部分: 对于istance,这是选

  • 我使用Spring AOP拦截方法执行。 我有一个界面,如下所示: 以下是接口的实现: 现在我希望任何使用@AwesomeAnnoting注释的参数的方法都应该被Spring AOP捕获。 所以我写了以下方面,这是有效的。 但是,当我尝试查找参数注释时,我没有得到任何注释。如上所述,annotationMatrix为空。 所以我的问题是: 为什么annotationMatrix为空?可能是因为参数

  • 我观看了本Spring开机教程:https://javabrains.io/courses/spring_bootquickstart/lessons/Creating-a-Spring-Data-JPA-Repository 它将@Entity注释放在类名之前。当我试图在我的代码中这样做时,我得到一个错误,说“无法解析@Entity”。 这是我的pom.xml文件: 你知道有什么问题吗?