解决SD卡分区错误的问题
背景信息
有时在使用Android手机的时候,我们可能需要将应用程序移动到SD卡中,并且希望这部分可以以混合格式进行处理。为了实现这一目标,在StackExchange上提供了一个具体命令(适用于Marshmallow及更高版本的Android系统),通过ADB shell来执行sm partition
命令。
然而,在执行下列命令时遇到问题:
$ adb shell sm partition disk:179,64 mixed 25
该操作会抛出错误:
Error: java.lang.IllegalStateException: java.util.concurrent.TimeoutException: Thread Binder_C gave up waiting for partitionMixed after 180000ms
根据经验,当数字变为75
时,可能会出现类似于以下的错误信息:
Error: java.lang.IllegalStateException: java.util.concurrent.TimeoutException: Thread Binder_4 gave up waiting for partitionMixed after 180000ms
解决方案
遇到上述情况,并且常规方法失效的情况下,可以尝试如下几种措施来解决问题:
- 确认SD卡状态: 首先检查手机内的SD卡状态。当您想要将应用程序移动到SD卡时,可能会因为SD卡上已有文件而被挂载为一个扩展分区(例如ext4),此时需要清空这部分数据并重新启用该SD卡的完整分区。
- 使用手机自带格式化工具:
- 由于直接格式化的命令未解决问题,可以尝试进入系统设置中找到SD卡管理或存储设置,通过内置的默认格式化工具来操作。这样可能会清除旧有的分区,并允许ADB命令正常执行。
- 重新启动设备: 格式化之后,请重启手机以确保所有变化生效。在完成上述步骤后,再次尝试使用:
adb
$ adb shell sm partition disk:179,64 mixed 25
通过以上步骤操作通常可以帮助解决因SD卡已有分区导致的问题。
实际遇到的情况
根据问题描述中的实际情况:
– 手机型号:Sony Xperia M4 Aqua Dual
– SD卡类型与大小:SanDisk Ultra micro SDHC UHS-1 Card 16GB,Class 10
具体地,在进行操作前,需确保SD卡没有文件被挂载或处于占用了的状态。可以通过手机的系统设置中找到SD卡对应的“格式化”选项来实现这一目标。
总结
通过上述步骤可以有效解决因SD卡分区问题导致的应用程序移动失败的情况。如果依然遇到具体技术难题,建议查阅更多的在线教程或技术支持以确保操作正确无误。