0

我整天都在编译我的应用程序,但它突然开始失败。正如您从下面看到的那样,这是一个NullPointException但我不知道出了什么问题。有没有人处理过这个问题,或者可以提供任何帮助或指导?

[INFO] [enunciate:assemble {execution: default}]
[INFO] initializing enunciate.
[INFO] invoking enunciate:generate step...
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
[INFO] invoking enunciate:compile step...
[INFO] [gwt] Compiling module com.project.myProject
[INFO] [gwt] Validating newly compiled units
[INFO] [gwt] [ERROR] Unexpected
[INFO] [gwt] java.lang.NullPointerException
[INFO] [gwt] at com.google.gwt.dev.javac.JdtCompiler$FindTypesInCud.visit(JdtCompiler.java:179)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1253)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.QualifiedAllocationExpression.traverse(QualifiedAllocationExpression.java:478)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.MessageSend.traverse(MessageSend.java:576)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.ConstructorDeclaration.traverse(ConstructorDeclaration.java:505)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1239)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:687)
[INFO] [gwt] at com.google.gwt.dev.javac.JdtCompiler$CompilerImpl.process(JdtCompiler.java:158)
[INFO] [gwt] at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444)
[INFO] [gwt] at com.google.gwt.dev.javac.JdtCompiler.doCompile(JdtCompiler.java:467)
[INFO] [gwt] at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:142)
[INFO] [gwt] at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:281)
[INFO] [gwt] at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:182)
[INFO] [gwt] at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:280)
[INFO] [gwt] at com.google.gwt.dev.Precompile.precompile(Precompile.java:502)
[INFO] [gwt] at com.google.gwt.dev.Precompile.precompile(Precompile.java:414)
[INFO] [gwt] at com.google.gwt.dev.Compiler.run(Compiler.java:201)
[INFO] [gwt] at com.google.gwt.dev.Compiler$1.run(Compiler.java:152)
[INFO] [gwt] at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:87)
[INFO] [gwt] at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:81)
[INFO] [gwt] at com.google.gwt.dev.Compiler.main(Compiler.java:159)
4

2 回答 2

0

首先,如果更新 GWT 不起作用,如果可以的话,将你的代码恢复到一个已知的工作版本。

我在尝试编译有问题的源代码时看到了来自编译器的此错误消息,其中包含对用户定义类型的变量调用方法的错误,该变量从未构造过任何实例(在编译单元中)......

我确信以下问题会产生您所看到的错误,我只是复制它以确保。当然,这并不意味着这是您的问题,但它可能会给您一些寻找的东西。

编译器因 NullPointerException 而失败:

MyDumbClass foo;
foo.doSomething();

没问题:

MyDumbClass foo = new MyDumbClass();
foo.doSomething();

我想......我完全在猜测......这与 GWT 只为你实际调用的东西输出 javascript 的事实有关,因此它必须从入口点开始构建一个调用图,并将其他所有内容都排除在外输出...可能是在该算法中它抛出了 MyDumbClass 或 MyDumbClass 的嵌套类型。

于 2010-09-19T18:35:04.133 回答
0

您是否已更新到较新的 GWT 版本并且未更新依赖的 jar?

Enunciate 默认情况下依赖于 GWT 1.5.2 jar。但是,如果您想更新到较新版本的 Enunciate,您可能需要将您的依赖项更新到较新版本:

<dependency>
  <groupId>com.google.gwt</groupId>
  <artifactId>gwt-user</artifactId>
  <version>2.0.0</version>
</dependency>

<dependency>
  <groupId>com.google.gwt</groupId>
  <artifactId>gwt-servlet</artifactId>
  <version>2.0.0</version>
</dependency>
于 2010-09-17T15:21:31.153 回答