1

だから私の小さなアプリはグーグル「プレイ」で利用可能であり、これまでにいくつかのダウンロードを取得しました。これで、開発者コンソールがクラッシュを報告しました。

このクラッシュレポートは奇妙です。

まず第一に、開発者コンソールは私にスタックトレースとクラッシュの理由、nullポインター例外を与えています。しかし、Androidのバージョンやハードウェアに関する情報がないため、バグを再現するためのエミュレーターセットアップを作成できません。

問題のある行は次のとおりです。

((TextView) findViewById(R.id.speechbubble)).setText(getResources().getString(R.string.welcome_nomusic));

私がテストしたすべてのデバイスとエミュレーターで、これは機能し、素敵な吹き出しメッセージになります。

そして、なぜそれが機能しないのですか?レイアウトに「speechbubble」というビューが含まれており、文字列リソースに「welcome_nomusic」のテキストメッセージが含まれていることを知っています。

それで、ここで何が起こっているのか、そしてそれをどのように修正するのか、何か考えはありますか?


修正、回答ありがとうございます。私の間違いは、さまざまな画面解像度のレイアウトを追加し、最後のコード変更後にすべてをテストしなかったことです。:-/

4

2 に答える 2

0

呼び出そうとしているリソースが特定のデバイスに存在しないか、リソースを見つけるのに苦労している可能性があります。

すべてのレイアウト/文字列/リソースが異なるサイズなどで同じであることを確認してください。ADT 17 + の新しい Lint ツールが役立ちます。

于 2012-04-25T09:28:44.793 に答える
0

関連するすべてのオブジェクトをログに記録するだけです:

log("R: " + R);
log("R.id: " + R.id);
log("R.id.speechbubble: " + R.id.speechbubble);
log("textView: " + findViewById(R.id.speechbubble));
log("getResources(): " + getResources());
log("R.string: " + R.string);
log("R.string.welcome_nomusic: " + R.string.welcome_nomusic);
log("text: " + getResources().getString(R.string.welcome_nomusic));

このブロックのどこかに null があります。

于 2012-04-25T09:25:19.933 に答える