java.lang.ArrayIndexOutOfBoundsException:大小=2048偏移量=0字节数=-1
为什么我将以writeTo函数的形式获取此异常 2019-07-02 12:17:03.525 13663-14248/com.zoinla.pegasus_工作 E/AndroidRuntime:致命异常:OkHttp调度程序 进程:com.xxx,PID:13663 java.lang.ArrayIndexOutOfBoundsException:大小=2048偏移量=0字节数=-1 在okio.Util.checkOffsetAndCountUtil.java:30 在okio.Buffer.writeBuffer.java:1096 在okio.Buffer.writeBuffer.java:54 在com.xxx.ProgressRequestBody.writeToProgressRequestBody.kt:33 在okhttp3.MultipartBody.writeOrCountBytesMultipartBody.java:173 在okhttp3.MultipartBody.writeToMultipartBody.java:114 在okhttp3.logging.HttpLoggingInterceptor.InterceptpLoggingInterceptor.java:202 ProgressRequestBody 它指向这条线java.lang.ArrayIndexOutOfBoundsException:大小=2048偏移量=0字节数=-1,java,kotlin,request,multipart,Java,Kotlin,Request,Multipart,为什么我将以writeTo函数的形式获取此异常 2019-07-02 12:17:03.525 13663-14248/com.zoinla.pegasus_工作 E/AndroidRuntime:致命异常:OkHttp调度程序 进程:com.xxx,PID:13663 java.lang.ArrayIndexOutOfBoundsException:大小=2048偏移量=0字节数=-1 在okio.Util.checkOffsetAndCountUtil.java:30 在okio.Buffe
sink.write(buffer, 0, read)
是,当read==-1时会发生这种情况。使用前应先进行测试:
do {
read = `in`.read(buffer)
handler.post(ProgressUpdater(uploaded, fileLength!!))
if (read == -1) {
break
}
uploaded += read.toLong()
sink.write(buffer, 0, read)
} while (true)
或许:
do {
read = `in`.read(buffer)
if (read == -1) {
break
}
uploaded += read.toLong()
sink.write(buffer, 0, read)
handler.post(ProgressUpdater(uploaded, fileLength!!))
} while (true)
do {
read = `in`.read(buffer)
if (read == -1) {
break
}
uploaded += read.toLong()
sink.write(buffer, 0, read)
handler.post(ProgressUpdater(uploaded, fileLength!!))
} while (true)