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

Android studio JavaDoc错误引发NullPointerException

夏侯博
2023-03-14

Android studio无法创建JavaDoc。它引发空指针异常,无法识别任何android打包的项目。

...
/home/<user>/AndroidStudioProjects/<project>/app/src/main/java/com/example/simpleparadox/listycity/MainActivity.java:14: error: cannot access ViewGroup
public class MainActivity extends AppCompatActivity {
       ^
  class file for android.view.ViewGroup not found
javadoc: error - fatal error encountered: java.lang.NullPointerException
javadoc: error - Please file a bug against the javadoc tool via the Java bug reporting page
(http://bugreport.java.com) after checking the Bug Database (http://bugs.java.com)
for duplicates. Include error messages and the following diagnostic in your report. Thank you.
java.lang.NullPointerException
    at jdk.compiler/com.sun.tools.javac.comp.TypeEnter$MembersPhase.runPhase(TypeEnter.java:934)
    at jdk.compiler/com.sun.tools.javac.comp.TypeEnter$Phase.doCompleteEnvs(TypeEnter.java:282)
    at jdk.compiler/com.sun.tools.javac.comp.TypeEnter$MembersPhase.doCompleteEnvs(TypeEnter.java:877)
    at jdk.compiler/com.sun.tools.javac.comp.TypeEnter$Phase.completeEnvs(TypeEnter.java:251)
    at jdk.compiler/com.sun.tools.javac.comp.TypeEnter$Phase.completeEnvs(TypeEnter.java:266)
    at jdk.compiler/com.sun.tools.javac.comp.TypeEnter$Phase.completeEnvs(TypeEnter.java:266)
    at jdk.compiler/com.sun.tools.javac.comp.TypeEnter$Phase.completeEnvs(TypeEnter.java:266)
    at jdk.compiler/com.sun.tools.javac.comp.TypeEnter.complete(TypeEnter.java:198)
    at jdk.compiler/com.sun.tools.javac.code.Symbol.complete(Symbol.java:642)
    at jdk.compiler/com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:1326)
    at jdk.compiler/com.sun.tools.javac.comp.Enter.complete(Enter.java:583)
    at jdk.compiler/com.sun.tools.javac.comp.Enter.main(Enter.java:560)
    at jdk.javadoc/jdk.javadoc.internal.tool.JavadocEnter.main(JavadocEnter.java:79)
    at jdk.javadoc/jdk.javadoc.internal.tool.JavadocTool.getEnvironment(JavadocTool.java:206)
    at jdk.javadoc/jdk.javadoc.internal.tool.Start.parseAndExecute(Start.java:576)
    at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:432)
    at jdk.javadoc/jdk.javadoc.internal.tool.Start.begin(Start.java:345)
    at jdk.javadoc/jdk.javadoc.internal.tool.Main.execute(Main.java:63)
    at jdk.javadoc/jdk.javadoc.internal.tool.Main.main(Main.java:52)
7 errors


然后,我在JavaDoc对话框的另一个命令行参数文本框中找到了一个将bootclasspath path\u添加到sdk\u android\u jar\u文件的工作。

但是,较新的Java弃用的-bootclasspath。它会引发另一个错误,如下所示:

error: option --boot-class-path not allowed with target 11

所以我改用了sourcepath。这带来了旧错误(NullPointerException)。

在这一点上我几乎迷路了。

顺便说一下,如果我选择一个只有Java元素(没有android)的类,并且只为该特定文件创建JavaDoc,那么它会很好地创建JavaDoc。但是对于一个有很多类的项目来说,这不是一个好的解决方法。

共有1个答案

齐驰
2023-03-14

我面临着与您相同的问题,有几个进口错误...

以下解决方案对我有用(我从mike192的答案中得到的,请参阅此处链接)

task javadoc(type: Javadoc) {

    doFirst {
        configurations.implementation
                .filter { it.name.endsWith('.aar') }
        .each { aar ->
            copy {
                from zipTree(aar)
                include "**/classes.jar"
                into "$buildDir/tmp/aarsToJars/${aar.name.replace('.aar', '')}/"
            }
        }
    }

    configurations.implementation.setCanBeResolved(true)
    source = android.sourceSets.main.java.srcDirs
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    classpath += configurations.implementation
    classpath += fileTree(dir: "$buildDir/tmp/aarsToJars/")
    destinationDir = file("${project.buildDir}/outputs/javadoc/")
    failOnError false
    exclude '**/BuildConfig.java'
    exclude '**/R.java'
}
 类似资料:
  • 我有一个程序,当一个按钮被点击时,radiobuttons改变文本。我还希望所有的radiobuttons在按钮被按下后都被取消选择。我的OnClickListener中有以下代码: 我收到以下错误:.ClearCheck()上的“无法解析方法”。 我哪里错了?

  • 问题内容: 当我在终端上键入以启动REPL时,它将引发此错误 当我敲击并键入时,它再次抛出该错误 我正在使用并给 问题答案: 更新到新的Scala版本(2.10.3+)或将Java降级到Java 6/7。正如您在输出中所看到的,2.9.2在引入Java 8()之前就已经很久了,因此它们不能很好地协同工作。 这个重复的问题包含有关ubuntu的Java降级的确切说明。

  • 问题内容: 我正在尝试在 Python中* 运行 PhantomJS 驱动程序,但出现错误。我读过我应该将整个路径作为参数传递,但这没有帮助。 * 这是代码: 错误: 你知道我在做什么错吗? 问题答案: 用原始字符串创建路径,并添加“ r”:

  • 你知道我做错了什么吗?

  • 我对ANT和JUnit是新手。根据需求,我在Eclipse中创建了'JUnitTestCase',并根据适当的注释调用所请求的测试类。在通过“Ant Build”运行“build.xml”文件时,它抛出错误如下: 在回顾JUnitTEstCase时,我已经导入了类似(import org.junit.after;import org.junit.before和import org.junit.te

  • 问题内容: 如果我 在表上有,如何抛出错误以阻止对该表进行更新? 问题答案: 这是一种可行的技巧。这不是干净的,但看起来可能可行: 本质上,您只是尝试更新不存在的列。