我正在尝试使用getText
打String 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
我知道有这么多问题,但是对我没有帮助。 我按照给定的帖子this,this和this等尝试了所有操作。有些人通过禁用即时运行解决了此问题。但这对我不起作用。
我正在使用这些依赖项进行改造:
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
答案 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()