ArrayIndexOutOfBoundsException-改装2.4.0调用

时间:2018-09-11 09:46:42

标签: java android retrofit2 indexoutofboundsexception

我正在尝试使用getTextString players_in_game = null; public void join_game_user_increases_register() throws Exception { WebDriverWait wait = new WebDriverWait(Drivers.getDriver(), 10); wait.until(ExpectedConditions.visibilityOf(countdownLabel)); if (!num_of_players_in_game.isDisplayed()) { String players_in_game = "0"; } else { String players_in_game = num_of_players_in_game.getText(); } System.out.println(players_in_game); int first_num = Integer.parseInt(players_in_game); 电话。在某些设备上运行正常,但在操作系统为POST Nexus 5 上崩溃。

但是现在我面临一个例外

  

art / runtime / thread.cc:1344]引发新异常'length = 1903;   index = 3147',具有意外的未决异常:   java.lang.ArrayIndexOutOfBoundsException:长度= 1903; index = 3147

我知道有这么多问题,但是对我没有帮助。 我按照给定的帖子thisthisthis等尝试了所有操作。有些人通过禁用即时运行解决了此问题。但这对我不起作用。

我正在使用这些依赖项进行改造:

retrofit

这是我的项目级别gradle文件:

6.0.1

这是我获得implementation 'com.squareup.retrofit2:retrofit:2.4.0' implementation 'com.squareup.okhttp3:okhttp:3.10.0' implementation 'com.squareup.retrofit2:converter-gson:2.4.0' 的API调用

classpath 'com.android.tools.build:gradle:3.1.4'
classpath 'com.google.gms:google-services:4.0.1'

这是我的API接口,其中调用已声明:

ArrayIndexOutOfBoundsException

如果有人解决了这个问题,请帮助我找出答案。

TIA

3 个答案:

答案 0 :(得分:1)

我也遇到了同样的问题。就我而言,我使用JsonElement而不是 Pojo类来解决它。

下面是回调。您可以尝试...

APIClient.getAPIService().getEffectsInternal(Constants.apiKey).enqueue(new Callback<JsonElement>() {
                @Override
                public void onResponse(Call<JsonElement> call, Response<JsonElement> response) {

                   Log.e("",""+response.body());


                }

                @Override
                public void onFailure(Call<JsonElement> call, Throwable t) {

                }
            });

我希望它对您有用。

答案 1 :(得分:0)

尝试禁用即时运行 或使用最新版本的Gradle插件

答案 2 :(得分:0)

我使用下一个版本的库:

implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

当我遇到错误时,我正在像这样创建 Retrofit 实例:

Retrofit.Builder()
        .baseUrl(API_ENDPOINT)
        .addConverterFactory(GsonConverterFactory.create())
        .build()

更改 GsonConverterFactory 初始化解决了问题:

Retrofit.Builder()
        .baseUrl(API_ENDPOINT)
        .addConverterFactory(GsonConverterFactory.create(GsonBuilder().create()))
        .build()