6

コードのどこかで、アプリのHTTPClientがリクエストを行っているときに、エミュレーターでネットワークをオフにするとAndroidアプリがクラッシュするという間違いを犯しました。

ただし、ネットワークをオフにするとADB接続も失われたため、デバッグできません。したがって、どの例外がクラッシュを引き起こしているのかわかりません。

私は次の方法でネットワークをオフにしようとしました:

  • F8
  • DDMSエミュレーター制御で「データ」を「未登録」または「拒否」に設定します

Macをオフラインにすると、ADBは起動したままになりますが、残念ながら、その方法でクラッシュを再現することはできません。

ADBを存続させながら、エミュレーターでネットワークをオフにする方法はありますか?基本的に、LogCatエントリにアクセスする必要があります。

ありがとう!

4

4 に答える 4

2

ADBからではなくデバイスからlogcatを実行し、オフラインで読み取るためにファイルにリダイレクトすることができます。

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

それ以外の

adb logcat [-v threadtime]

その後、デバイスに再接続したときにファイルを取得できます。

于 2012-11-12T10:10:08.960 に答える
1

Linuxでは、これはiptablesファイアウォールを使用すると非常に簡単です。私はあなたがAPI呼び出しをデバッグしようとしていると思うので、APIホストをブロックするだけです:

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

確かに、MacまたはWindowsファイアウォールでも同じことができます。

于 2014-03-31T07:23:51.653 に答える
0

いつでもデバイスを機内モードにすることができます。これにより、adbを介して接続することはできますが、エミュレーターにインターネットへの接続を与えることはできません。データドロップダウンに未登録/拒否を入力することにより、ddmsのエミュレーター制御セクションを介してeclipseを介してデータをオフにすることもできます。

于 2012-11-10T08:24:57.727 に答える
0

これは古い質問ですが、誰かがこれにfindを使用する可能性があります。

私のセットアップ

エミュレートされたAndroid4.4を搭載したEclipseKepler

adbを存続させ、ネットワークをオフにしておきたい場合は、これを試すことができます。

  1. エミュレートされたデバイスを開始します
  2. フライト/機内モードをアクティブにする
  3. Eclipseを再起動します
  4. うまくいくはずです!接続されているデバイスのDDMSパースペクティブを確認するか、adb devicesコマンドを使用します
于 2014-05-18T12:43:58.080 に答える