RoboGuice2.0 を使用していくつかのモジュールを注入すると、次のような ArrayIndexOutOfBoundsException が発生します
Caused by: java.lang.ArrayIndexOutOfBoundsException
at java.util.ArrayList.add(ArrayList.java:129)
at com.google.inject.internal.ap.a(Unknown Source)
at com.google.inject.internal.da.b(Unknown Source)
at com.google.inject.internal.da.a(Unknown Source)
at com.google.inject.internal.da.a(Unknown Source)
at com.google.inject.internal.da.a(Unknown Source)
at com.google.inject.internal.da.a(Unknown Source)
at com.google.inject.internal.bn.a(Unknown Source)
at com.google.inject.internal.InternalInjectorCreator.build(Unknown Source)
at com.google.inject.Guice.createInjector(Unknown Source)
at com.google.inject.Guice.createInjector(Unknown Source)
at roboguice.RoboGuice.setBaseApplicationInjector(Unknown Source)
at com.sankuai.movie.MovieApplication.onCreate(Unknown Source)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:984)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3825)
このように setBaseApplicationInjector を使用しました。
List<Module> modules = new ArrayList<Module>();
modules.add(new DefaultNetModule(Consts.BASE_URL));
modules.add(new DefaultLocationModule(this, false, null, 30000, 5000,
10000));
modules.add(new UpdateDownloadModule(this, "movie",
BaseConfig.sChannel, BaseConfig.sVersionCode,
BaseConfig.sVersionName, null));
modules.add(new MovieModule());
modules.add(new AccountModules(getApplicationContext()));
RoboGuice.setBaseApplicationInjector(this, Stage.DEVELOPMENT, Modules
.override(RoboGuice.newDefaultRoboModule(this)).with(modules));
おそらく、RoboGuice2.0 のソースコードで List に何かを追加したときに発生したと思われます。私の使用法は正しいのか、この問題の解決策なのだろうか。