【发布时间】:2014-05-06 22:08:58
【问题描述】:
这很奇怪。我最近在所有具有相同库的项目中都使用了 Roboguice 2.0,一切看起来都很好。我开始了全新的项目,在我的应用程序启动时出现了一些令人毛骨悚然的错误(...)。我到处搜索,从 SO 开始,但所有问题都与旧的或解决方案不起作用的这个错误相对应。
詹姆·兰尼斯特手上的金钉子,用来解决这场噩梦!
我使用 Android Studio 和库:
- guice-3.0-no_aop
- javax.inject-1
- jsr305-1.3.9
- roboguice-2.0
- in other modules there are Spring-for-android-REST and GreenDao libs, if it matters
类扩展应用:
public class JudgementSearcherApp extends Application {
@Inject private InitAppCommand initApp;
@Override
public void onCreate() {
super.onCreate();
setup();
}
private void setup() {
RoboGuice.setBaseApplicationInjector(this, RoboGuice.DEFAULT_STAGE,
RoboGuice.newDefaultRoboModule(this), new JSGuiceModule());
RoboGuice.injectMembers(this,this);
initApp.execute(JudgementSearcherApp.this);
}
}
错误:
com.rudearts.judgementsearcher E/AndroidRuntime: FATAL EXCEPTION: main java.lang.RuntimeException:无法创建应用程序 com.rudearts.judgementsearcher.JudgementSearcherApp:com.google.inject.CreationException:Guice 创建错误: 1) 注入构造函数时出错,java.lang.NullPointerException 在 com.rudearts.judgementsearcher.core.managers.LawCaseManager.(未知来源) 在 com.rudearts.judgementsearcher.core.managers.LawCaseManager.class(未知来源) 同时定位 com.rudearts.judgementsearcher.core.managers.LawCaseManager 对于 com.rudearts.judgementsearcher.controller.setup.commands.LoadLastUpdateDateCommand.lawCaseState 的字段(未知来源) 同时定位 com.rudearts.judgementsearcher.controller.setup.commands.LoadLastUpdateDateCommand 对于 com.rudearts.judgementsearcher.controller.setup.commands.InitAppCommand.loadDate 的字段(未知来源) 同时定位 com.rudearts.judgementsearcher.controller.setup.commands.InitAppCommand 对于 com.rudearts.judgementsearcher.JudgementSearcherApp.initApp 的字段(未知来源) 在 roboguice.config.DefaultRoboModule.configure(DefaultRoboModule.java:141) 在 roboguice.config.DefaultRoboModule.configure(DefaultRoboModule.java:141) 定位 android.app.Application 对于 roboguice.util.Ln$BaseConfig 中的参数 0。(未知来源) 同时定位 roboguice.util.Ln$BaseConfig 对于 roboguice.util.Ln.config 中的字段(未知来源) 1 个错误 在 android.app.ActivityThread.handleBindApplication(ActivityThread.java:3291) 在 android.app.ActivityThread.access$2200(ActivityThread.java:121) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:981) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:130) 在 android.app.ActivityThread.main(ActivityThread.java:3770) 在 java.lang.reflect.Method.invokeNative(Native Method) 在 java.lang.reflect.Method.invoke(Method.java:507) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:670) 在 dalvik.system.NativeStart.main(本机方法) 引起:com.google.inject.CreationException:Guice 创建错误: 1) 注入构造函数时出错,java.lang.NullPointerException 在 com.rudearts.judgementsearcher.core.managers.LawCaseManager.(未知来源) 在 com.rudearts.judgementsearcher.core.managers.LawCaseManager.class(未知来源) 同时定位 com.rudearts.judgementsearcher.core.managers.LawCaseManager 对于 com.rudearts.judgementsearcher.controller.setup.commands.LoadLastUpdateDateCommand.lawCaseState 的字段(未知来源) 同时定位 com.rudearts.judgementsearcher.controller.setup.commands.LoadLastUpdateDateCommand 对于 com.rudearts.judgementsearcher.controller.setup.commands.InitAppCommand.loadDate 的字段(未知来源) 同时定位 com.rudearts.judgementsearcher.controller.setup.commands.InitAppCommand 对于 com.rudearts.judgementsearcher.JudgementSearcherApp.initApp 的字段(未知来源) 在 roboguice.config.DefaultRoboModule.configure(DefaultRoboModule.java:141) 在 roboguice.config.DefaultRoboModule.configure(DefaultRoboModule.java:141) 定位 android.app.Application 对于 roboguice.util.Ln$BaseConfig 中的参数 0。(未知来源) 同时定位 roboguice.util.Ln$BaseConfig 对于 roboguice.util.Ln.config 中的字段(未知来源) 1 个错误 在 com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:435) 在 com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:175) 在 com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109) 在 com.google.inject.Guice.createInjector(Guice.java:95) 在 com.google.inject.Guice.createInjector(Guice.java:83) 在 roboguice.RoboGuice.setBaseApplicationInjector(RoboGuice.java:94) 在 com.rudearts.judgementsearcher.JudgementSearcherApp.setup(JudgementSearcherApp.java:26) 在 com.rudearts.judgementsearcher.JudgementSearcherApp.onCreate(JudgementSearcherA
【问题讨论】:
标签: java android gradle guice roboguice