1

最近、Androidプロジェクトのパッケージ構造をリファクタリングし、BroadcastReceiverクラスを別のパッケージに移動しました。receiverただし、AndroidManifest.xmlのタグのandroid:nameフィールドを更新するのを忘れました。

これBroadcastReceiverはクライアントに通知を送信するために使用され、この重大なエラーは単に通知が送信されなかったことを意味します。残念ながら、このファイルのコンパイル時の検証はありません。または、ここで構成の誤りを示すためにスローされたランタイムエラーがあるようです。

これらのタイプの構成を検証するために、自分の側からできることはありますか?おそらく、この情報は単体テストでアクセスして検証できますか?または、このようなエラーが将来見過ごされないように構成できる、より詳細な出力があるのではないでしょうか。

4

1 に答える 1

1

または、ここで構成の誤りを示すためにスローされたランタイムエラーのようです

LogCatに警告が表示された可能性がありますが、ブロードキャストの受信機がゼロであることが完全に正常な状態であるため、おそらく表示されません。

これらのタイプの構成を検証するために、自分の側からできることはありますか?

機能リクエストを提出して、Lintにマニフェストのこの部分を検証させることができます。または、独自のスクリプトを記述してソースツリーとマニフェストを分析し、これをカスタマイズされたAntビルドスクリプトの一部として含めることができます。

おそらく、この情報は単体テストでアクセスして検証できますか?

PackageManagerを使用しqueryBroadcastReceivers()Intentて、ブロードキャストに使用するが1つ以上の受信者に解決されることを確認できます。

于 2013-02-08T14:21:55.030 に答える