Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Gin构建GWT时出现NullPointerException_Java_Gwt_Dependency Injection_Nullpointerexception_Gwt Gin - Fatal编程技术网

Java 使用Gin构建GWT时出现NullPointerException

Java 使用Gin构建GWT时出现NullPointerException,java,gwt,dependency-injection,nullpointerexception,gwt-gin,Java,Gwt,Dependency Injection,Nullpointerexception,Gwt Gin,我的Gin模块包含以下内容: @Override protected void configure() { bind(HistoryWrapper.class).to(HistoryWrapperImpl.class); ... } 所讨论的类型包括: public interface HistoryWrapper { void newItem(String token); } public class HistoryWrapperImpl impleme

我的Gin模块包含以下内容:

  @Override
  protected void configure() {
    bind(HistoryWrapper.class).to(HistoryWrapperImpl.class);
    ...
  }
所讨论的类型包括:

public interface HistoryWrapper {

  void newItem(String token);

}

public class HistoryWrapperImpl implements HistoryWrapper {

  @Override
  public void newItem(String token) {}

}
尝试GWT编译时,出现以下错误:

Compiling module com.foo.FooGame
   Validating newly compiled units
      Ignored 9 units with compilation errors in first pass.
Compile with -strict or with -logLevel set to TRACE or DEBUG to see all errors.
   Scanning for additional dependencies: file: FooGameHtml.java
      Computing all possible rebind results for 'com.foo.html.client.gin.BarGinjector'
         Rebinding com.foo.html.client.gin.BarGinjector
            Invoking generator com.google.gwt.inject.rebind.GinjectorGenerator
               [ERROR] Generator 'com.google.gwt.inject.rebind.GinjectorGenerator' threw an exception while rebinding 'com.foo.html.client.gin.BarGinjector'
java.lang.NullPointerException
    at com.google.gwt.inject.rebind.BindingsProcessor.createImplicitBinding(BindingsProcessor.java:498)
    at com.google.gwt.inject.rebind.BindingsProcessor.access$900(BindingsProcessor.java:99)
    at com.google.gwt.inject.rebind.BindingsProcessor$GuiceBindingVisitor.addImplicitBinding(BindingsProcessor.java:982)
    at com.google.gwt.inject.rebind.BindingsProcessor$GuiceBindingVisitor.visit(BindingsProcessor.java:972)
    at com.google.gwt.inject.rebind.BindingsProcessor$GuiceBindingVisitor.visit(BindingsProcessor.java:898)
    at com.google.inject.internal.UntargettedBindingImpl.acceptTargetVisitor(UntargettedBindingImpl.java:40)
    at com.google.gwt.inject.rebind.BindingsProcessor$GuiceElementVisitor.visit(BindingsProcessor.java:827)
    at com.google.gwt.inject.rebind.BindingsProcessor$GuiceElementVisitor.visit(BindingsProcessor.java:820)
    at com.google.inject.internal.BindingImpl.acceptVisitor(BindingImpl.java:92)
    at com.google.gwt.inject.rebind.BindingsProcessor.createBindingsForModules(BindingsProcessor.java:409)
    at com.google.gwt.inject.rebind.BindingsProcessor.process(BindingsProcessor.java:238)
    at com.google.gwt.inject.rebind.GinjectorGeneratorImpl.generate(GinjectorGeneratorImpl.java:76)
    at com.google.gwt.inject.rebind.GinjectorGenerator.generate(GinjectorGenerator.java:47)
    at com.google.gwt.core.ext.GeneratorExtWrapper.generate(GeneratorExtWrapper.java:48)
    at com.google.gwt.core.ext.GeneratorExtWrapper.generateIncrementally(GeneratorExtWrapper.java:60)
    at com.google.gwt.dev.javac.StandardGeneratorContext.runGeneratorIncrementally(StandardGeneratorContext.java:647)
    at com.google.gwt.dev.cfg.RuleGenerateWith.realize(RuleGenerateWith.java:41)
    at com.google.gwt.dev.shell.StandardRebindOracle$Rebinder.rebind(StandardRebindOracle.java:78)
    at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:268)
    at com.google.gwt.dev.shell.StandardRebindOracle.rebind(StandardRebindOracle.java:257)
    at com.google.gwt.dev.DistillerRebindPermutationOracle.getAllPossibleRebindAnswers(DistillerRebindPermutationOracle.java:91)
    at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.doFindAdditionalTypesUsingRebinds(WebModeCompilerFrontEnd.java:96)
    at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.process(AbstractCompiler.java:254)
    at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:444)
    at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.compile(AbstractCompiler.java:173)
    at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.compile(AbstractCompiler.java:288)
    at com.google.gwt.dev.jdt.AbstractCompiler$Sandbox$CompilerImpl.access$400(AbstractCompiler.java:139)
    at com.google.gwt.dev.jdt.AbstractCompiler.compile(AbstractCompiler.java:588)
    at com.google.gwt.dev.jdt.BasicWebModeCompiler.getCompilationUnitDeclarations(BasicWebModeCompiler.java:97)
    at com.google.gwt.dev.jdt.WebModeCompilerFrontEnd.getCompilationUnitDeclarations(WebModeCompilerFrontEnd.java:52)
    at com.google.gwt.dev.jjs.JavaToJavaScriptCompiler.precompile(JavaToJavaScriptCompiler.java:569)
    at com.google.gwt.dev.jjs.JavaScriptCompiler.precompile(JavaScriptCompiler.java:33)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:284)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:233)
    at com.google.gwt.dev.Precompile.precompile(Precompile.java:145)
    at com.google.gwt.dev.Compiler.run(Compiler.java:232)
    at com.google.gwt.dev.Compiler.run(Compiler.java:198)
    at com.google.gwt.dev.Compiler$1.run(Compiler.java:170)
    at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:88)
    at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:82)
    at com.google.gwt.dev.Compiler.main(Compiler.java:177)
   [ERROR] Errors in 'src/com/foo/html/client/FooGameHtml.java'
      [ERROR] Line 34:  Failed to resolve 'com.foo.html.client.gin.BarGinjector' via deferred binding
   Scanning for additional dependencies: jar:file:/C:/path/to/eclipse-java-indigo-win32-x86_64%20(1)/eclipse/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.v201201120043-rel-r37/gwt-2.4.0/gwt-user.jar!/com/google/gwt/core/client/impl/AsyncFragmentLoader.java
      [WARN] For the following type(s), generated source was never committed (did you forget to call commit()?)
         [WARN] com.foo.html.client.gin.BarGinjectorImpl
我做错了什么?注释掉
bind(HistoryWrapper.class)
行可以消除这个问题,尽管我显然需要该类型的绑定

当我尝试使用
@Provides
方法时,我遇到了类似的错误

更新:现在我得到了一个不同的NPE,但我不确定为什么:

java.lang.NullPointerException
    at com.google.gwt.inject.rebind.util.KeyUtil.javaToGwtMethod(KeyUtil.java:222)
    at com.google.gwt.inject.rebind.binding.ProviderMethodBinding.setProviderMethod(ProviderMethodBinding.java:60)
    at com.google.gwt.inject.rebind.BindingsProcessor$GuiceBindingVisitor.visit(BindingsProcessor.java:926)
    at com.google.gwt.inject.rebind.BindingsProcessor$GuiceBindingVisitor.visit(BindingsProcessor.java:898)
    at com.google.inject.internal.ProviderInstanceBindingImpl.acceptTargetVisitor(ProviderInstanceBindingImpl.java:52)
    at com.google.gwt.inject.rebind.BindingsProcessor$GuiceElementVisitor.visit(BindingsProcessor.java:827)
    at com.google.gwt.inject.rebind.BindingsProcessor$GuiceElementVisitor.visit(BindingsProcessor.java:820)
    at com.google.inject.internal.BindingImpl.acceptVisitor(BindingImpl.java:92)
1) 尝试将构造函数(即使是空的)添加到正在注入的实现中

2) 您可能还需要尝试将@Inject添加到构造函数中,即使它是空的


我对没有构造函数的Gin注入实现有一个问题。。奇怪,但尝试向HistoryWrapperImpl添加一个空构造函数。如果它不起作用,尝试将@Inject添加到构造函数中…

我修复了它:结果是
HistoryWrapper
test/
中,而
HistoryWrapperImpl
src/
中<代码>测试/不是GWT的源文件夹之一。哎呀。

已经有了这种无用的堆栈跟踪。您能提供类(和接口)中使用的导入列表吗?没有导入。类和接口是完整列出的。编译器告诉您如何获得更好的信息:“编译时将-strict或-logLevel设置为TRACE或DEBUG以查看所有错误。”