调度器 - arrayIndexOutOfBoundSexception
执行此功能时,出现以下错误:
FATAL EXCEPTION: OkHttp Dispatcher
java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
如何解决?
fun run(url: String) {
val client = OkHttpClient()
val request = Request.Builder()
.url(url)
.build()
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
Log.i("Falha", e.toString())
}
override fun onResponse(call: Call, response: Response) {
val json= response.body?.string()
val jsonArray = JSONTokener(json).nextValue() as JSONArray
for (i in 0 until jsonArray.length()) {
val x = jsonArray.getJSONObject(i).getString("nomeParque")
val y = jsonArray.getJSONObject(i).getString("morada")
val lat = jsonArray.getJSONObject(i).getString("latitude").toDouble()
val lng = jsonArray.getJSONObject(i).getString("longitude").toDouble()
nome.set(i, x)
morada.set(i, y)
latitude.set(i, lat)
longitude.set(i, lng)
}
}
})
}
When executing this function, the following error appears:
FATAL EXCEPTION: OkHttp Dispatcher
java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
How to solve?
fun run(url: String) {
val client = OkHttpClient()
val request = Request.Builder()
.url(url)
.build()
client.newCall(request).enqueue(object : Callback {
override fun onFailure(call: Call, e: IOException) {
Log.i("Falha", e.toString())
}
override fun onResponse(call: Call, response: Response) {
val json= response.body?.string()
val jsonArray = JSONTokener(json).nextValue() as JSONArray
for (i in 0 until jsonArray.length()) {
val x = jsonArray.getJSONObject(i).getString("nomeParque")
val y = jsonArray.getJSONObject(i).getString("morada")
val lat = jsonArray.getJSONObject(i).getString("latitude").toDouble()
val lng = jsonArray.getJSONObject(i).getString("longitude").toDouble()
nome.set(i, x)
morada.set(i, y)
latitude.set(i, lat)
longitude.set(i, lng)
}
}
})
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您只需要在for句子中添加-1中的jsonarray.length()。
You just have to add -1 in jsonArray.length() in the for sentence.