IOException:AsyncTask映像下载Kotlin Android(错误的文件描述符)

IOException:AsyncTask映像下载Kotlin Android(错误的文件描述符),android,android-asynctask,kotlin,Android,Android Asynctask,Kotlin,更新 经过一些调试,我发现 给定代码中的Catch块在没有任何异常的情况下执行。 我打印inputstream,它返回一些值,事件位图varibale被初始化,但一旦它执行catch块,它就会将null返回给onPostExecute方法 寻找它发生的原因 结束 我正在使用Android Studio 3.0 创建了支持Kotlin的简单android应用程序,该应用程序在AsyncTask类和HTTPURLConnection类的帮助下从give http协议url下载图像 在执行Async

更新

经过一些调试,我发现 给定代码中的Catch块在没有任何异常的情况下执行。 我打印inputstream,它返回一些值,事件位图varibale被初始化,但一旦它执行catch块,它就会将null返回给onPostExecute方法

寻找它发生的原因

结束

我正在使用Android Studio 3.0

创建了支持Kotlin的简单android应用程序,该应用程序在AsyncTask类和HTTPURLConnection类的帮助下从give http协议url下载图像

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

StackTrace倾向于由以下原因引起的错误:android.system.ErrnoException:recvfrom failed:EBADF,在调用此BitmapFactory.decodeStream(inputstream)方法的同一行上


您应该只在阅读响应正文后调用disconnect

它是java,但您可以将其调整为Kotlin:

HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
connection.disconnect()

connection.disconnect()
如果我想从流中读取,我不会这样做。我已经收集了inputstream引用:在断开连接之前,但即使在删除连接之后。disconnect()仍然会出现相同的错误。
connection.doOutput=true
删除该语句。这是我正在使用的POST.URL:@geenapps:仍然是相同的问题使用相同的Java逻辑但得到IOException.@GaneshTikone在哪一行?Post stacktrace@Florescu George Cătălin:更新的问题,即使代码没有引发异常,也会执行Catch block。@GaneshTikone发生了什么错误?我在你的截图中没有看到任何stacktrace。让代码运行,然后查看日志。
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
connection.disconnect()