5

ときどき (約 50% の時間)、Android アプリのデバッグ中に、関数にステップインするために F5 を使用します (F6 はそれを調べるためのものです) が、何もしません。

場合によっては、通常のデバッグ キーがどれも機能しないことがあります (F5、F6、F7、F8 など、私が知らない他のキーもあるかもしれません)。

現在、これを克服する唯一の方法は、「デバッグ」ビュー (各スレッドの現在のスタックを表示する) から現在のスレッドを選択し、 F5 を押すことです。状況がさらに悪い場合 (たとえば、コンテンツ アシストを使用できない場合)、Eclipse を再起動します。

スレッドといえば、複数のスレッドを実行している場合、さらに進めようとすると別のスレッドに移動することがあり、現在のスレッドに対する集中力が失われるため、これが煩わしいことに気付きました。ある程度の意味があることはわかっていますが、特に複数のスレッドがあることを考慮すると、本当に面倒です。

これらはなぜ発生し、どうすれば修正できますか?

注: Eclipse、ADT、および Android SDK の両方の最新バージョンを使用しています。この問題は、デバイスとエミュレータの両方で発生します。

4

5 に答える 5

4

スレッドは順番に実行されないため、スレッドの実行パターンを制御することはできませんが、デバッガーは実行します。

バックグラウンドで実行されるスレッドと非同期操作で同様の問題に直面しました。

私がそれを管理する方法:

  • 私がしているのは、スレッドなしで同じコードを実行し、確認後にそれをスレッドに入れることです
  • android.os.Debug.waitForDebugger();スレッドで使用します。自動的にそこに移動し、デバッガーをここで停止させます。その後、デバッグを続行できます。

予防

アプリケーションを起動する前に、この行をコメントすることを忘れないでください。そうしないと、実際のデバイスでもデバッグ モードになるため、延々と待機することになります。

さらに、これは Eclipse のせいではなく、純粋に独自の環境で実行され始めるスレッドの性質によるものです。Visual Studio は、スレッドと同じように動作します。

于 2013-04-03T06:03:07.213 に答える
1

場合によっては、通常のデバッグ キーがどれも機能しないことがあります (F5、F6、F7、F8 など、私が知らない他のキーもあるかもしれません)。

これらのキーは、デバッグ ビュー以外のビューでは機能しません。これは設計によるものです。

状況がさらに悪い場合 (たとえば、コンテンツ アシストを使用できない場合)、Eclipse を再起動します。

Eclipse のインストールにバグがあるか、キーボードに問題があります。他の方のコメントを読んで納得です。プラグインがEclipseのインストールを台無しにしており、これに関連する可能性があります。ショートカットを試す前に、Eclipse コード ウィンドウにフォーカスがあることを確認してください。それも問題の一因となる可能性があります。他のすべてが失敗した場合は、別のバージョンの Eclipse に移行して、問題を特定してみてください。

バックスペースキーを押すと、以前に開いたファイルの同じ行の文字が削除されるという、Eclipseの奇妙なバグがしばらくありました。それは恐ろしく、再インストールしてEclipseの別のバージョンに移動する必要がありました(以前のバージョンが何であったか思い出せません)。あなたの状況が似ているかもしれません。

スレッドといえば、複数のスレッドを実行している場合、さらに先に進めようとすると、別のスレッドに移動することがあり、現在のスレッドに集中できなくなるため、これが煩わしいことに気付きました。

私は痛みを知っています。残念ながら、それを回避する方法はありません。Eclipse は、スレッドを中断している間、ブレークポイントの優先順位を考慮しません。この関連する質問を見てください - How to deprioritize Java testrunner in Eclipse breakpoints? . デバッガーが他のスレッドに移動しないように条件付きブレークポイントを設定できる場合は、それが役立ちます。

于 2013-04-03T06:42:37.200 に答える
0

ステップ フィルターを使用したデバッグが Eclipse でどのように行われるかを説明している良いスレッドを見つけました。スレッドはここにあります。どうやらこれはEclipseの問題であり、より多くの人がそれに遭遇しているので、これは当面の回避策です:

「ステップ フィルター」を構成することで、Eclipse Java デバッガーがこれらのコードにステップ インしないように構成できます。

  1. Windows -> Preferences -> Java -> Debug -> Step Filtering に移動します。
  2. 「ステップ フィルターを使用する」にチェックを入れます。
  3. 画面上の適切なオプションを確認します。独自のコードベースに関連するパーツを追加できます。
  4. [適用] をクリックします。

これが役立つかどうかを確認してください。

于 2013-03-29T09:10:01.250 に答える
0

私の場合、Androidスタジオに関係のないことをするためにキーが割り当てられています。たとえば、音量を上げて、ファイル/設定/キーマップを再構成して、どのキーが何をするかを再構成します。

于 2016-03-20T15:42:37.863 に答える