首页 > 解决方案 > HttpURLConnection 适用于模拟器,但不适用于 USB 连接设备

问题描述

我的应用程序中有一些休息请求,在异步任务上执行。小的适用于任何地方(模拟器和 USB 连接设备),但是当我必须读取更大的输入流(如 base64 图像)时,它只适用于模拟器(api 29 和 api 23 测试正常),但不适用于我的手机(这也是 api 23)。它只是在流的中间停止读取,没有错误。

为了能够在 USB 连接的设备上处理更大的 REST 响应,是否有任何限制或开发人员选项需要配置?

我也尝试了 Volley lib,但给了我一个超时错误,我想内部发生的情况与使用 java.net 类相同。

我在清单中定义了互联网权限和 android:usesCleartextTraffic="true"。

我希望有人可以帮助我。

标签: androidandroid-studioandroid-emulatorandroid-sdk-manager

解决方案


在清单文件中添加“org.apache.http.legacy” 。希望它会奏效。

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:usesCleartextTraffic="true">

    <uses-library
                android:name="org.apache.http.legacy"
                android:required="false" />
</application>

推荐阅读