Ich habe Methode, die eine Absicht zu einem Component löst:Warum sollte Activity.getPackageManager() null zurück
private static ComponentName resolveViewExternalIntent(Context context)
{
Intent intent = createIntent();
return intent.resolveActivity(context.getPackageManager());
}
In seltenen Fällen bekomme ich folgenden ACRA Absturzbericht:
java.lang.NullPointerException
at android.content.Intent.resolveActivity(Intent.java:4518)
at com.mypackage.myclass.resolveViewExternalIntent(SourceFile:271)
at om.mypackage.myActivity.onResume(SourceFile:517)
Diese Linie in Die Intent-Klasse ruft die NPE ab, da der PackageManager null
ist.
Ich sehe das selten, aber häufig genug, dass mich diese Frage geschrieben hat.
Hat jemand eine Idee, unter welchen Umständen kann Context/Activity.getPackageManager() null zurückgeben? In meinem Fall ist context
das Activity-Objekt selbst, nicht der ApplicationContext. Die App führt in diesem Fall die Lifecycle-Methode Activity.onResume() aus.
Ihr Kontext ist sicher nicht null? –
Wenn es so wäre, würde ich diesen Stack-Trace bekommen? Also, nein, Kontext kann nicht null sein. –
Außerdem rufe ich diese resolveViewExternalIntent (this) auf, wobei 'this' die Aktivität ist, also ist es unmöglich, dass sie null ist. –