Android adb常见问题整理

本文详细介绍了解决ADB连接问题的方法,包括插拔USB线、重启设备、更新ADB版本等,并提供了处理常见错误的解决方案。



以下都是ADB连接问题,可以通过尝试如下步骤,由简单度排序
1. 插拔下USB连接线
2. 关闭USB模式再打开
3. 执行以下命令
adb kill-server
adb start-server  

4.  效果与3相同
DDMS - Devices - Reset adb

5. 关闭所有PC套件,例如:
杀死 Wandoujia  相关的所有进程,ok
wandoujia_daemon.exe
wandoujia_helper.exe


6. 重启Eclipse
7. 查看有几个ADB进程,全部杀死再重新启动ADB
8. 查看下USB先是否连接电脑与手机
9. 重启手机
10. 关闭占用5037端口软件
11. 更新adb (见问题14)

1. 查看占用端口5037的PID值
netstat -a -n -o |findstr "5037"
输出结果:
  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       5096
  TCP    127.0.0.1:5037         127.0.0.1:51577        ESTABLISHED     5096
  TCP    127.0.0.1:51577        127.0.0.1:5037         ESTABLISHED     4324


2. 从上面得知PID = 5096占用了5037端口,现在通过PID查看进程名,看到底哪个进程占用此端口
tasklist /v | findstr 5096
输出结果:
tadb.exe  5096 Console  1  4,932 K Unknown  ......  0:00:02 暂缺


网上查询得知tadb.exe是腾讯管家启动的进程


3. 杀死占用5037端口的进程 tadb.exe
taskkill /f -pid 5096
taskkill /im tadb.exe
输出结果
成功: 已终止 PID 为 5096 的进程。



问题1 
The connection to adb is down, and a severe error has occured.
You must restart adb and Eclipse.
Please ensure that adb is correctly located at 'adb.exe' and can be executed.



问题2
ADB server didn't ACK
* failed to start daemon *


问题3
Adb failed to restart! Make sure the plugin is properly configured



问题4
** Adb connection Error:远程主机强迫关闭了一个现有的连接


问题5
java.io.IOException: 您的主机中的软件中止了一个已建立的连接。
      at sun.nio.ch.SocketDispatcher.write0(Native Method)
      at sun.nio.ch.SocketDispatcher.write(Unknown Source)
      at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
      at sun.nio.ch.IOUtil.write(Unknown Source)
      at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
      at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
      at com.android.ddmlib.Client.sendAndConsume(Client.java:575)
      at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)
      at com.android.ddmlib.Client.requestAllocationStatus(Client.java:421)
      at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:854)
      at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:822)
      at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:781)
      at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:649)
      at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:42)
      at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:577)


通常是同时打开了两个eclipse,关闭一个即可

问题6
Failed to install .apk on device '': Unable to open sync connection!
java.io.IOException: Unable to open sync connection!
Launch canceled!

问题7
ADB rejected shell command (rm /data/local/.apk): closed
Error during Sync: Unable to open sync connection!
Error during Sync: Unable to open sync connection!
Adb connection Error:远程主机强迫关闭了一个现有的连接。
Connection attempts: 1
Connection attempts: 2
Connection attempts: 3


问题8
Failed to install .apk on device  : Too many open files
com.android.ddmlib.SyncException: Too many open files
Launch failed on device: 



问题9
Failed to install .apk on device '': closed
com.android.ddmlib.InstallException: closed
Launch failed on device:


问题10
Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
Please check logcat output for more details.
Launch failed on device:

问题11
Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE
Please check logcat output for more details.
Launch failed on device: 

使用PC套件删除,然后安装不行,通过adb uninstall 再次删除,安装ok

问题12
Android Launch!
Connection with adb was interrupted.
0 attempts have been made to reconnect.
You may want to manually restart adb from the Devices view.


问题13
 Unexpected error while launching logcat. Try reselecting the device.] closed
com.android.ddmlib.AdbCommandRejectedException: closed
      at com.android.ddmlib.AdbHelper.executeRemoteCommand(AdbHelper.java:381)
      at com.android.ddmlib.Device.executeShellCommand(Device.java:462)
      at com.android.ddmuilib.logcat.LogCatReceiver$1.run(LogCatReceiver.java:109)
      at java.lang.Thread.run(Unknown Source)


问题14
adb server is out of date.  killing...
* daemon started successfully *
error: device offline

出现问题的版本
D:\>adb version
Android Debug Bridge version 1.0.29 

问题出在adb的版本太低,更新ADT后问题解决
D:\>adb version
Android Debug Bridge version 1.0.31










2013-03-21  更新问题6,问题7
2013-04-18  更新问题8,9,10,11,12。统一解决方案
2014-01-27 更新error: device offline 问题与解决方案
<think>好的,用户想知道如何使用ADB命令清除Android应用缓存或系统缓存。我需要根据提供的引用资料来整理回答。首先,引用2和5提到了清除应用缓存的命令是`adb shell pm clear 包名`,这应该是最直接的命令。然后,用户可能想知道如何处理执行报错的情况,比如引用1中提到的OPPO机型权限监控的问题,需要引导用户关闭权限监控。对于系统缓存,可能没有直接命令,但引用3提到通过反射清除第三方应用数据,但用户可能需要更系统级的操作,比如恢复出厂设置或者进入Recovery模式清除缓存分区。此外,引用4提到清除日志缓存,虽然不是用户直接问的,但可能相关。需要确保回答结构清晰,分步骤说明应用缓存和系统缓存的清除方法,并包含注意事项和常见问题解决。还要检查是否需要区分保留数据的情况,比如引用2中的`-k`参数用于卸载时保留数据,但清除缓存时可能不需要。最后生成相关问题,比如优化方法或错误处理。</think>### 分步说明:清除Android应用缓存或系统缓存 #### 一、清除应用缓存 1. **使用标准ADB命令** 通过以下命令可清除指定应用的数据和缓存(需替换`包名`为实际应用标识符): ```bash adb shell pm clear <包名> ``` 示例: ```bash adb shell pm clear com.budaye.demo ``` 此操作会彻底清除应用的用户数据和缓存目录[^2][^5]。 2. **处理权限报错问题** 部分机型(如OPPO)可能因系统权限限制导致清理失败。解决方法: - 进入设备设置 → 开发者选项 → 关闭「权限监控」开关[^1]。 - 重新执行上述ADB命令。 3. **批量清除第三方应用缓存** 若需批量清理非系统应用,可结合以下命令: ```bash adb shell pm list packages -3 # 列出所有第三方应用包名 adb shell pm clear <包名1> # 逐个执行清除 ``` --- #### 二、清除系统缓存 1. **系统应用缓存清理** - **卸载并保留数据**:使用 `-k` 参数卸载系统应用但保留缓存(需Root权限): ```bash adb shell pm uninstall -k <系统应用包名> ``` - **恢复系统应用**:卸载后可通过以下命令恢复: ```bash adb shell cmd package install-existing <系统应用包名> ``` 2. **系统级缓存分区清理** - 进入设备的 **Recovery模式**(不同品牌按键组合不同,通常为电源+音量键),选择「清除缓存分区」。 - 此操作会清理系统临时文件及更新残留,但不会删除用户数据。 --- #### 三、高级操作与注意事项 - **日志缓存清理**:使用 `adb logcat -c` 清除main区域日志,或 `adb logcat -b all -c` 清理所有缓存日志[^4]。 - **反射清除第三方数据**:通过Java反射调用隐藏API(需系统权限): ```java PackageManager pm = getPackageManager(); Method clearUserData = pm.getClass().getMethod("clearApplicationUserData", String.class, IPackageDataObserver.class); clearUserData.invoke(pm, "目标包名", null); ```[^3] --- #### 四、常见问题 1. **清除缓存后数据恢复** 若需保留数据(如登录信息),避免直接使用 `pm clear`,可改用 `pm uninstall -k` 卸载应用后重装。 2. **ADB连接失败** 确保设备已开启「USB调试」模式,并授权当前计算机的调试请求。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值