私はこのエラーをログカットに表示していますが、追加情報はありません。仮想メソッドnullを呼び出すcontext.getSystemService
reply.send(RESULT_AVAILABLE);
これは次のとおりです。
PendingIntent reply = intent.getParcelableExtra(PENDING_RESULT_EXTRA);
if (reply != null) {
if (requestType == 1) {
try {
if (! googInfo.equals("") || googReach) {
googReach = true;
}
if (! tradInfo.equals("") || tradReach) {
tradReach = true;
}
if (tradReach && googReach) {// && ! tooSlow) {
reply.send(RESULT_BOTH_AVAILABLE);
} else if (tradReach) {// && ! tooSlow) {
reply.send(RESULT_TRAD_AVAILABLE);
} else if (googReach) {// && ! tooSlow) {
reply.send(RESULT_GOOG_AVAILABLE);
} else {
reply.send(RESULT_UNAVAILABLE);
}
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
} else {
try {
if (! googInfo.equals("") || ! tradInfo.equals("") || googReach || tradReach) {
reply.send(RESULT_AVAILABLE);
} else {
reply.send(RESULT_UNAVAILABLE);
}
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
}
}
は、私は次の操作を行う部分より正確には:
Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
は、デバッグしている間、私はこの部分でエラーが発生したことが判明しましたアクティビティによって開始されるIntentService。デバッグ中は、返答オブジェクトが正しく埋め込まれていることがわかりました。また、RESULT_AVAILABLEは、正しい値を持つ静的final intです。
このIntentServiceは、次のコードで呼び出されます。
PendingIntent pendingResult = createPendingResult(INTERNET_AVAILABILITY_CODE, new Intent(), 0);
Intent intent = new Intent(getApplicationContext(), PingIntentService.class);
intent.putExtra(PingIntentService.PENDING_RESULT_EXTRA, pendingResult);
startService(intent);
奇妙なことは、私は、コードのこれらの部分には何も変更していないと、それは常に正しく働いていた、です。他の奇妙なことは私のtry/catchブロックが例外をキャッチしないことです。私はエラーに関する詳細情報を得ることができるように、その部分にブレークポイントと詳細情報を入れましたが、その部分はトリガされません。
私はすでにエラーを検出しており、多くの人が他の状況でこの問題を抱えているようです。私は自分のコンテキストがnullだと理解していますが、デバッグ中にはnullではないことがわかります...私が見つけたすべてのリンク/答えでさえ、私はまだ私の問題の原因を見つけることができません。
Javaスタックトレース全体と、そのスタックトレースで参照されるすべてのコードを投稿してください。 – CommonsWare