[解決済み] ブロードキャストインテント受信エラー問題
2022-02-19 03:15:18
質問
メインアクティビティとブロードキャストインテントを送信するバックグラウンドサービスにブロードキャストレシーバを作成しました。アプリケーションを実行しようとすると毎回クラッシュし、ログに以下のエラーメッセージが表示されます。
10-04 13:30:43.218: ERROR/AndroidRuntime(695): java.lang.RuntimeException: エラー ブロードキャストIntent {の受信 action=com.client.gaitlink.CommunicationService.action.LOGIN_STATUS_UPDATE。 (エクストラを含む) } in com.client.gaitlink.GaitLink$LoginStatusReceiver@431690e8
ブロードキャストメッセージは、以下のメソッドでCommunicationServiceクラスから送信されます。
private void announceLoginStatus(){
Intent intent = new Intent(LOGIN_STATUS_UPDATE);
intent.putExtra(SERVER_MESSAGE, mServerResponseMessage);
intent.putExtra(SESSION_STRING, mSessionString);
sendBroadcast(intent);
}
ここで
String LOGIN_STATUS_UPDATE = "com.client.gaitlink.CommunicationService.action.LOGIN_STATUS_UPDATE"
は、メインアクティビティで次のようなブロードキャストリバイバーが定義されています。
public class LoginStatusReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
String serverMessage = intent.getStringExtra(CommunicationService.SERVER_MESSAGE);
String sessionString = intent.getStringExtra(CommunicationService.SESSION_STRING);
userInfo.setSessionString(sessionString);
saveSettings();
}
}
を作成し、onResumeメソッドに登録します。
IntentFilter loginStatusFilter;
loginStatusFilter = new IntentFilter(CommunicationService.LOGIN_STATUS_UPDATE);
loginStatusReceiver = new LoginStatusReceiver();
registerReceiver(loginStatusReceiver, loginStatusFilter);
そして、マニフェストファイルには、次のような内容が含まれています。
<activity android:name=".GaitLink"
android:label="@string/app_name">
<intent-filter>
...
<action android:name="com.client.gaitlink.CommunicationService.action.LOGIN_STATUS_UPDATE" />
</intent-filter>
</activity>
なぜLogが上記のようなメッセージを表示し、アプリケーションがクラッシュするのか、どなたか説明していただけると幸いです。
ありがとうございます。
解決方法は?
デバッガーでステップバイステップで、クラッシュが発生する場所を正確に探しましたか?
Android のライフサイクルイベントをオーバーライドしている場合、必要なときにベースクラスのコンストラクタを正しく呼び出しているかどうかが1つのポイントです。
関連
-
[解決済み】インストールエラー。インストールエラー:install_failed_older_sdk
-
[解決済み】Android Studio AVD - Emulator: 終了コード 1 でプロセスが終了
-
[解決済み] [Solved] Unsupported method: ベースコンフィグ.getApplicationIdSuffix()
-
[解決済み】findViewByIDがnullを返す。
-
[解決済み】SDKの場所がandroid studioで見つからない。
-
[解決済み] TypeError: cb.apply は関数ではありません。
-
[解決済み] sendUserActionEvent() は null です。
-
[解決済み] EclipseのAndroidプラグインで "Debug certificate expired "エラーが発生する。
-
[解決済み] Androidでインテントから余分なデータを取得するにはどうすればよいですか?
-
[解決済み] メール送信インテント
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android Intent コンストラクタを解決できない
-
[解決済み】AndroidのSSL接続でトラストアンカーが見つからない
-
[解決済み】コンテンツには、id属性が「android.R.id.list」であるListViewが必要です。
-
[解決済み】Android Studioです。「プロジェクトが C ドライブに作成されている場合、「タスク ':app:mergeDebugResources' の実行に失敗しました。
-
[解決済み】プロガードを有効にすると、タスク ':app:crashlyticsStoreDeobsDebug' の依存関係を判断できない。
-
[解決済み】Android 8:クリアテキストのHTTPトラフィックが許可されない
-
[解決済み] Xlint:deprecationを使用して再コンパイルする方法
-
[解決済み] Androidのgravityとlayout_gravityの違いは何ですか?
-
[解決済み] Gradleのエラーです。イベントディスパッチスレッドからの書き込みアクセスは、Android Studioでのみ許可されます。
-
[解決済み] APKのインストール中にDELETE_FAILED_INTERNAL_ERRORエラーが発生する。