在保持ADB活动的同时断开Android模拟器中的网络连接

时间:2012-11-09 05:37:18

标签: android android-emulator adb

我在代码中的某个地方犯了一个错误,当我在应用程序的HTTPClient发出请求时我在模拟器中关闭网络时,我的Android应用程序崩溃了。

但是我无法调试它,因为当我关闭网络时,我也失去了ADB连接。因此,我无法看到导致崩溃的异常。

我尝试通过以下方式关闭网络:

  • F8
  • 在DDMS仿真器控制中将“数据”设置为“未注册”或“拒绝”

我可以让我的Mac离线,ADB会保持原状,但不幸的是我无法以这种方式重现崩溃。

有没有办法在模拟器中关闭网络,同时保持ADB活着?我基本上需要访问LogCat条目。

谢谢!

4 个答案:

答案 0 :(得分:2)

您可以从设备而不是从ADB运行logcat,并将其重定向到文件以供离线阅读。

adb shell logcat [-v threadtime] > /sdcard/mylogs/logcat.log

而不是

adb logcat [-v threadtime]

然后,您可以在重新连接设备时获取该文件。

答案 1 :(得分:1)

在linux上,使用iptables防火墙非常简单。我想你试图调试api调用所以只是阻止api主机:

iptables -I OUTPUT -d api.example.com -j DROP

当然,你可以用Mac或Windows防火墙做同样的事情。

答案 2 :(得分:0)

您始终可以将设备置于飞行模式,这仍然允许您通过adb连接,但不能让模拟器连接到互联网。您还可以通过ddms中的模拟器控制部分通过eclipse关闭数据,方法是将未注册/拒绝放入数据下拉列表。

答案 3 :(得分:0)

我知道这是一个老问题,但有人可能会使用find。

我的设置

  

Eclipse Kepler with emulated android 4.4

如果您想让adb保持活动状态并关闭网络,可以试试这个。

  1. 启动模拟设备
  2. 激活飞行/飞行模式
  3. 重启Eclipse
  4. 它应该工作!检查连接设备的DDMS透视图或使用adb devices命令