web-dev-qa-db-ja.com

Android Studio DebuggerアプリケーションがInterruptedExceptionでクラッシュする

今日の作業中、突然アプリケーションをデバッグできなくなったように見えました。おかしなことは、私がアプリを普通に走らせたらうまくいくということです。明確にするために、私は何の問題もなくデバッガを実行していました(時折の不具合やクラッシュは別として)。その後、昼食後、100%の確率で失敗し始めました。もちろん、私は一日中変更を行ってきました。したがって、上記のように見えます。そのため、関連する詳細を次に示します。

  • Android Studio 2.1.1(2016年4月28日ビルド)

  • このアプリは、ログイン画面で起動します。ユーザーは、外部サービスを呼び出すユーザー名/パスワードで認証する必要があります。

  • ログイン画面にアクセスできますが、認証の途中でアプリが常にクラッシュします。

スタックトレースは次のとおりです。

05-24 14:56:25.764 2399-2745/com.mycomp.myapp.test E/Crashlytics: Failed to execute task.
                    Java.lang.InterruptedException
                        at Java.util.concurrent.FutureTask.awaitDone(FutureTask.Java:375)
                        at Java.util.concurrent.FutureTask.get(FutureTask.Java:162)
                        at com.crashlytics.Android.v.a(SourceFile:1936)
                        at com.crashlytics.Android.v.uncaughtException(SourceFile:307)
                        at Java.lang.ThreadGroup.uncaughtException(ThreadGroup.Java:693)
                        at Java.lang.ThreadGroup.uncaughtException(ThreadGroup.Java:690)
05-24 14:56:25.764 2399-2745/com.mycomp.myapp.test E/AndroidRuntime: FATAL EXCEPTION: pool-5-thread-1
                       Process: com.mycomp.myapp.test, PID: 2399
                       Java.lang.InterruptedException
                           at Java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.reportInterruptAfterWait(AbstractQueuedSynchronizer.Java:1991)
                           at Java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.Java:2025)
                           at Java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.Java:410)
                           at Java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.Java:1035)
                           at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1097)
                           at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:588)
                           at Java.lang.Thread.run(Thread.Java:820)

ここに私がそれを修正しようとしたものがあります:

  • すべての変更を取り消します(git stash)
  • 電話からアプリケーションをアンインストールする
  • クリーンビルドを行う
  • Gradleプロジェクトの再同期を行う
  • すべてのブレークポイントを削除します(真剣に?)
    • わかりました、私は物事がどのように機能するかを見るためにブレークポイントを全面的に追加してきました。そこにはいくつかのメリットがあります。
  • 再起動Android Studio!(電源を入れ直してください)

そして今のところ、何も機能しません。ただし、アプリ(再生ボタン、^ R)を実行してまったく同じデバイスで実行するだけで正常に機能することを強調することはできません。問題なくログインします。そのため、コードの問題ではないようです。

さらに、スタックトレースを見ると、プロジェクトを指すものは何もありません。

何か案は?

23

さて、私はそれを理解しました。 「スレッドの一時停止」をオプションの1つとして選択した「Javaフィールドウォッチポイント」がありました。詳細については、添付のスクリーンショットを参照してください。テイクアウト:

ご覧のとおり、私は多数のブレークポイントを使用していたため、ウィンドウに埋もれてしまい、表示されませんでした。

どのように設定されたかはまだわかりません。前日に時計を使用していましたが、すべて削除していました。さらに、私はそれをオンにしなかったと確信しているので、それが日中に神秘的に動作しなくなった方法はまだ謎です。また、自分で「スレッドの中断」をチェックしなかったことは確かです。何らかのデフォルト設定?

ポイントが残っている-奇妙なスタックトレースが表示されている場合は、すべてのブレークポイントおよびウォッチポイント設定を確認するとよい場合があります。

これが誰かの助けになることを願っています。

Screenshot of BreakPoint Window in Android Studio

38

少なくとも、Android Studio 2.3.3)の場合、Instant Runが原因のようです。ブレークポイントを無効にする代わりに、Instant Runを無効にしてみてください。これを行うと、ブレークポイントがクラッシュしなくなりました。

詳細については、 Androidアプリをデバッグモードで起動するとクラッシュする をご覧ください。 Mac OS Xでは、Android Studio-> Preferences-> Build、Execution、Deployment-> InstantRunに移動して、[Instant Run to hot swap ...]のチェックを外して、Instant Runを無効にしました。

「インスタントランに問題がありますか?」があります。設定パネルに表示されるメッセージ。 [追加のログを再度有効にしてアクティブにする]をクリックし、クラッシュを再現した後、すぐに[ヘルプ-インスタントランの問題を報告...]オプションを使用して報告しました。

24
slogan621

インスタントランをオフにすると、すべての問題が修正されます

1

エミュレーターを変更しました(Android 8.1からAndroid 7.0)に変更しましたが、これを二度と経験しませんでした。これに3時間を費やしました。この。

0
Kim Montano