1

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 に何かを追加したときに発生したと思われます。私の使用法は正しいのか、この問題の解決策なのだろうか。

4

0 に答える 0