問題タブ [android-anr-dialog]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
12525 参照

android - コードがスタックに表示されない場合、ANR traces.txt をどのように解釈すればよいですか?

Android アプリケーションで永続的な ANR (「アプリケーションが応答しない」) をデバッグしようとしています。

私はこれらのスレッドを読みました:

優先メッセージはStrictModeを使用することです。これを実行します。

ただし、繰り返し見られる ANR スタックの原因を解釈したいと思います。まず、メイン スレッドが表示されません。代わりに、「waitForActivityStart」という名前の 1 つのスレッドを含む、メインの「グループ」に多くのスレッドが表示されます。

どのスレッドにも自分のコードが表示されないため、自分のコードが原因でこの ANR がどのように発生するのか混乱しています。インストールしたライブラリから表示される唯一のコードは、「GAThread」というタイトルの Google アナリティクス (GA) でした。それが犯人でしょうか?もしそうなら、誰かがこのレポートからそれを推測する方法を説明できますか?

これは、4.2.2 を実行している Nexus 7 で ADB を使用してプルした traces.txt からの出力です。

0 投票する
1 に答える
86 参照

android - ボタンをたくさん作るとAndroidエラーANR

この問題についてはわかりません。私の Android アプリケーションは、カスタム ボタンを生成する必要があります。ボタンが 144 個未満の場合でも機能しますが、144 個を超えるボタンを生成すると機能します。それは機能せず(Forcse Closed)、このようなログキャストでエラーを表示します.....

きっと、私のコードではエラーではありません。どうしたの?

0 投票する
0 に答える
563 参照

android - 大規模なデータベースを備えたアンドロイドカーソルローダー

連絡先アプリケーションを開発していますが、多数の連絡先をサポートする必要があります。ユーザーが1万人の連絡先を持っているとしましょう。

要件は次のとおりです。1) 高速スクロールのセクション化されたリストビュー 2) 姓または名、電子メールまたは電話番号のユーザー タイプとして連絡先を検索

私はこれにコンテンツプロバイダーを書きました。5つの列を持つテーブルがあります。

サポート ライブラリのカーソル ローダーで loadermanger コールバックを使用して、コンテンツ プロバイダーにクエリを実行しています。

しかし、テーブルの50000行でこの問題に直面しています。

1) ANR - このログの場合 - おそらくカーソルによるヒープ メモリの割り当てと割り当て解除が頻繁に行われるため

2) アダプターからセクション コードを削除すると、ANR の頻度が減るように見えますが、それでも FASTSCROLL によって ANR が発生します。

3)検索:「FTS3」を使用して検索を高速化できますが、それは私の要件ではありません。クエリでのみ「LIKE」または「CONTAINS」を使用する必要があります。

この要件を達成することは不可能ですか?グーグルの人たちはどうやってやっているの?

0 投票する
1 に答える
6040 参照

android - アプリケーションのランダム使用における ANR

私は VOIP アプリケーションを持っており、エンジン部分は C(NDK) レベルですandroid-ndk-r5 の
使用

ANR トレース:

2013 年 5 月 6 日 ADB ログの編集

この時点でどのスレッドがスタックしているかはわかりません。何が起きてる?

0 投票する
1 に答える
661 参照

java - Android setOnKeyListener が ANR (Application Not Responding) プロンプトを引き起こす

大きな (1.5MB) テキスト ファイルのすべての行を調べ、特定の単語を含む各行を表示する単純なアプリを作成しました (この単語は、EditText を介してユーザーから受け取ります)。このアプリは、テキスト ファイルを検索している間、間違いなく私のデバイスに多大な負担をかけますが、以下のコードを追加するまで、ANR プロンプトを 1 つも受け取ったことはありませんでした。現在、ANR プロンプトが頻繁に表示されます。アプリからコードを削除すると、ANR プロンプトが削除されます。プロンプトの原因となっている可能性があるこのコードの原因は何ですか? それは間違って書かれていますか?ANR プロンプトが表示される以外は、正常に動作しています。

編集:

ANR プロンプトは、Enter キーを押してトリガーされてから数秒以内に OnKeyListener プロセスを完了できなかったことが原因のようです。時間のかかるリソースを大量に消費するプロセスが開始され、完了が遅れたため、完了できませんでした。解決策は、リソースを大量に消費するプロセスを起動する代わりに、OnKeyListener プロセスに変数の値を変更させるだけでした。これにより、OnKeyListener プロセスがすぐに完了し、リソースを大量に消費するプロセスが別の場所から起動されます (変数の値の変更によってトリガーされます)。

以下は、私が現在使用しているコードです。後日、以下の Simon André Forsberg の推奨に従って、リソースを大量に消費するプロセスをバックグラウンドに置く 2 つ目のアプリを作成してみます。

0 投票する
1 に答える
571 参照

java - Android - 5 つの変数値をバックグラウンド スレッドに渡し、そこから 5 つの値を受け取る方法は?

短い話:
UI スレッドからバックグラウンド スレッドにコードを少し移動する必要があります。また、5 つの変数値をそのバックグラウンド スレッドに渡し、そこから 5 つの値を受け取ることができるようにする必要があります。以下のコードが私のコードであり、コメント行の間のビットが移動する必要があると偽って、誰かが簡単な実例を提供できることを願っています。

長い話:
UI スレッドのコードの一部が完了するまでに約 15 秒かかります。この間、画面がフリーズします。とにかく、ユーザーはその時点で画面を操作する必要がないため、画面がフリーズしてもかまいません。問題は、私もOnKeyListenerを持っていることです私のUIスレッドで、遅延を承認しません。ユーザーが 15 秒の遅延の間にキーボードのキーを押すと、約 5 秒後に ANR (アプリケーションが応答しない) プロンプトが表示されます。時間のかかるコードを、バックグラウンドで実行できる別のスレッドに移動する必要があります。AsyncTask やその他のメソッドを使用してこれを行う方法を理解しようと約 13 時間費やしましたが、5 つの変数値をスレッドに渡し、スレッドから 5 つの値を受け取る方法を理解できませんでした。以下のコードが私のコードであり、コメント行の間のビットが移動する必要があると偽って、誰かが簡単な実例を提供できることを願っています。



編集:
これが私がこの問題を解決するためにやったことです: