2010-07-20 130 views
3

我正在用GWT編譯我的項目與任何目標。我在Linux和Solaris上遇到以下錯誤。我可以編譯GWT附帶的示例,但遇到此錯誤。GWT編譯錯誤

我使用GWT 2.0.3和JDK 1.6.17

[java] Compiling module com.calix.ex1.webgui.ex1embeddedclient.Ex1EmbeddedGui 
[java] [ERROR] Unexpected 
[java] java.lang.NullPointerException 
[java]  at com.google.gwt.dev.javac.JdtCompiler$FindTypesInCud.visit(JdtCompiler.java:179) 
[java]  at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1253) 
[java]  at org.eclipse.jdt.internal.compiler.ast.QualifiedAllocationExpression.traverse(QualifiedAllocationExpression.java:478) 
[java]  at org.eclipse.jdt.internal.compiler.ast.ReturnStatement.traverse(ReturnStatement.java:262) 
[java]  at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.traverse(MethodDeclaration.java:239) 
[java]  at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1350) 
[java]  at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1223) 
[java]  at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:687) 
[java]  at com.google.gwt.dev.javac.JdtCompiler$CompilerImpl.process(JdtCompiler.java:158) 
[java]  at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444) 
[java]  at com.google.gwt.dev.javac.JdtCompiler.doCompile(JdtCompiler.java:467) 
[java]  at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:142) 
[java]  at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:281) 
[java]  at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:182) 
[java]  at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:280) 
[java]  at com.google.gwt.dev.Precompile.precompile(Precompile.java:502) 
[java]  at com.google.gwt.dev.Precompile.precompile(Precompile.java:414) 
[java]  at com.google.gwt.dev.Compiler.run(Compiler.java:201) 
[java]  at com.google.gwt.dev.Compiler$1.run(Compiler.java:152) 
[java]  at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:87) 
[java]  at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:81) 
[java]  at com.google.gwt.dev.Compiler.main(Compiler.java:159) 

回答

2

也許答案在這裏: GWT Issue 4552

如果忽視添加導入像這樣的 匿名類:

FocusPanel dropdown = new FocusPanel(); 
dropdown.addClickHandler(new BloggiDiBlook() {}); 

其中class BloggiDiBlook 既不是 在封閉類的包中,也不是 在封閉類的 .java文件中導入。應該有一個 適當的「類未找到」或 類似的編譯器錯誤。相反, JDT編譯器會引發以下 NullPointerException異常

+0

感謝您的幫助,該錯誤信息是相同的,但如何將javac是編譯這種缺失的進口?我將通過代碼來查找是否有這種情況。 – Vijay 2010-07-21 15:21:16

+0

我發現了這個問題。即使啓用GWT編譯器的蹤跡也沒有幫助,所以我只是採用了jdt編譯器代碼並使用它進行調試。無論如何,問題是我們有兩個內部類。另一個來自調試器的類引用了我可以看到它正試圖加載的類型。 感謝您的幫助! – Vijay 2010-07-22 03:33:38