猿问

ArrayIndexOutOfBoundsException - 改造 2.4.0 调用

我正在尝试POST使用retrofit. 它在某些设备上运行良好,但在操作系统版本为 的Nexus 5上崩溃6.0.1。


但现在我面临一个例外


art/runtime/thread.cc:1344] 抛出新的异常 'length=1903; index=3147' 出现意外未决异常:java.lang.ArrayIndexOutOfBoundsException:length=1903;指数=3147


我知道 SO 上有很多问题但没有什么对我有帮助。我按照给定的帖子尝试了所有内容,例如这个、这个和这个等等。有些人通过禁用Instant Run解决了这个问题。但这对我不起作用。


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


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'

这是我的项目级 gradle 文件:


classpath 'com.android.tools.build:gradle:3.1.4'

classpath 'com.google.gms:google-services:4.0.1'

这是我得到的 API 调用 ArrayIndexOutOfBoundsException


APIClient.getAPIService().getEffects(Constants.apiKey).enqueue(//callback);

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


@FormUrlEncoded

@POST("/getEffects")

Call<GetEffectResp> getEffects(@Field("apikey") String apikey);

如果有人解决了这个问题,请帮我弄清楚。


紫衣仙女
浏览 154回答 2
2回答

皈依舞

我也遇到过同样的问题。在我的情况下,我使用JsonElement而不是Pojo 类来解决它。下面是回调。你可以试试看...APIClient.getAPIService().getEffectsInternal(Constants.apiKey).enqueue(new Callback<JsonElement>() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public void onResponse(Call<JsonElement> call, Response<JsonElement> response) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Log.e("",""+response.body());&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public void onFailure(Call<JsonElement> call, Throwable t) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; });
随时随地看视频慕课网APP

相关分类

Java
我要回答