我在代码中的某个地方犯了一个错误,当我在应用程序的HTTPClient发出请求时我在模拟器中关闭网络时,我的Android应用程序崩溃了。
但是我无法调试它,因为当我关闭网络时,我也失去了ADB连接。因此,我无法看到导致崩溃的异常。
我尝试通过以下方式关闭网络:
我可以让我的Mac离线,ADB会保持原状,但不幸的是我无法以这种方式重现崩溃。
有没有办法在模拟器中关闭网络,同时保持ADB活着?我基本上需要访问LogCat条目。
谢谢!
答案 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保持活动状态并关闭网络,可以试试这个。
adb devices
命令