Okhttp偶遇FATAL EXCEPTION: OkHttp Dispatcher java.lang.IllegalStateException: closed 错误

报错提示

 E/AndroidRuntime: FATAL EXCEPTION: OkHttp Dispatcher
 java.lang.IllegalStateException: closed

报错原因

 String data=response.body().string();
 中.string()方法使用次数超过了一次。

没错,你只能使用一次,至于原因看下面的源码分析。所以讲Log.d(“xx”,response.body().string());果断的注释掉吧。

源码

  • .string()方法

    这里写图片描述
    这里写图片描述
    在这里我们看到调用一次.string 方法此方法中有close方法,如果调用一次就会关闭流,所以导致此错误。

### EMMC使用寿命检测方法 #### 获取EMMC基本信息 可以通过读取`/sys/block/mmcblk0/device/`下的文件来获取EMMC的基本信息,包括CID、名称以及寿命数据。具体命令如下: - **获取CID**: `cat /sys/block/mmcblk0/device/cid`[^1] - **获取名称**: `cat /sys/block/mmcblk0/device/name`[^1] - **获取寿命**: `cat /sys/block/mmcblk0/device/life_time`[^1] #### 检查EMMC擦写次数 为了进一步评估EMMC的使用寿命,可以挂载`debugfs`并解析`ext_csd`中的特定字段。 ##### 步骤 1. **挂载调试文件系统** 执行以下命令将`debugfs`挂载到指定目录: ```bash mount -t debugfs none /sys/kernel/debug ``` 2. **进入目标路径** 转至`/sys/kernel/debug/mmc0/mmc0:0001/`目录,该路径可能因设备不同而有所变化。 3. **读取`ext_csd`文件** 使用以下命令查看扩展CSD寄存器的内容: ```bash cat /sys/kernel/debug/mmc0/mmc0:0001/ext_csd ``` 4. **提取关键字段** 关注第537-538位(即第268字节)的数据,这部分表示EMMC的擦写状态。解释如下: - 若值为`00`,则说明当前EMMC不支持通过此方法查询擦写次数[^2]。 - 若值在`01-0A`范围内,则属于正常范围,分别对应不同的磨损程度。 - 例如,`01`代表使用了0%-10%,依此类推。 - 若值为`0B`,表明EMMC已超过最大擦写次数,可能导致不稳定行为。 #### 示例代码 以下是自动化脚本的一个简单实现,用于快速检查EMMC的擦写状态: ```bash #!/bin/bash # 挂载debugfs if ! grep -q "none on /sys/kernel/debug type debugfs" /proc/mounts; then mount -t debugfs none /sys/kernel/debug fi # 获取ext_csd内容 EXT_CSD=$(cat /sys/kernel/debug/mmc0/mmc0:0001/ext_csd) # 提取第268字节 LIFE_TIME_BYTE=${EXT_CSD:((268*2)):2} case $LIFE_TIME_BYTE in "00") echo "This device does not support querying erase cycles." ;; "01"|"02"|"03"|"04"|"05"|"06"|"07"|"08"|"09"|"0a") PERCENTAGE=$(( (0x$LIFE_TIME_BYTE * 10) )) echo "Erase cycle usage is between ${PERCENTAGE}% and $((${PERCENTAGE} + 10))%" ;; "0b") echo "The erase count has exceeded the maximum limit!" ;; *) echo "Unknown value detected ($LIFE_TIME_BYTE)." ;; esac ``` #### 工具辅助检测 除了命令行操作外,还可以借助专门的工具进行更详细的诊断。例如,Android平台上可使用的`eMMC check`软件能够提供关于EMMC健康状况的更多信息,特别是针对某些机型特有的Bug检测功能[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值