gpt4 book ai didi

android - IO异常 : AsyncTask Image Download Kotlin Android (Bad File Descriptor)

转载 作者:行者123 更新时间:2023-11-29 19:06:02 26 4
gpt4 key购买 nike

更新

经过一些调试,我发现给定代码中的 Catch block 得到执行,没有任何异常异常。我打印返回一些值的输入流,事件位图变量被初始化但是一旦它执行 catch block ,它返回 null 到 onPostExecute 方法。

寻找它发生的原因?

Please check debug screenshot of studio

结束

我正在使用 Android Studio 3.0。

使用 Kotlin 支持创建了简单的 android 应用程序,它在 AsyncTask 类和 HTTPURLConnection 类的帮助下从给定的 http 协议(protocol) url 下载图像。

在执行 AsyncTask 类时,我从 HTTPURLConnection 对象获取 http 响应代码 200,但在使用 BitmapFactory.decodeStream(inputstream) 方法解码流时抛出 IOEXception。

StackTrace 倾向于错误 Caused by: android.system.ErrnoException: recvfrom failed: EBADF ,在调用此 BitmapFactory.decodeStream(inputstream) 方法的同一行上。

    override fun doInBackground(vararg args: String?): Bitmap? {

var bitmap: Bitmap? = null

try {

val url = URL(args[0])
val connection: HttpURLConnection = url.openConnection() as HttpURLConnection

connection.requestMethod = "GET"
connection.connectTimeout = 10 * 60 * 60
connection.readTimeout = 10 * 60 * 60
connection.doInput = true
connection.doOutput = true

connection.connect()
val responseCode = connection.responseCode
if (HTTP_OK == responseCode) {
if (null != connection.inputStream) {
val inputStream = connection.inputStream
connection.disconnect()
bitmap = BitmapFactory.decodeStream(inputStream)
}
}else{
Log.e("####","Error Response Code: ${responseCode}")
}

} catch (ex: IOException) {
Log.e("####",ex.localizedMessage)

} catch (ex: MalformedURLException) {
ex.printStackTrace()

} catch (ex: Exception) {
ex.printStackTrace()

}

return bitmap
}

最佳答案

您应该只在阅读响应正文后调用断开连接。

关于android - IO异常 : AsyncTask Image Download Kotlin Android (Bad File Descriptor),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47203489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com