mam metodę, która rozwiązuje zamiarem jest componentName:Dlaczego Activity.getPackageManager() zwraca wartość null
private static ComponentName resolveViewExternalIntent(Context context)
{
Intent intent = createIntent();
return intent.resolveActivity(context.getPackageManager());
}
Rzadko pojawia się następujący Acra zgłoszenie awarii:
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)
To linia klasa Intent pobiera NPE, ponieważ PackageManager to null
.
Widzę to rzadko, ale dość często, że zmusiłem mnie do napisania tego pytania.
Ktoś ma jakiś pomysł, w jakich okolicznościach Context/Activity.getPackageManager() zwróci wartość null? W moim przypadku, context
jest sam obiekt Activity, a nie ApplicationContext. W takim przypadku aplikacja wykonuje metodę cyklu życia Activity.onResume().
Twój kontekst nie jest na pewno pusty? –
Jeśli tak, to czy otrzymam ślad stosu? Więc nie, kontekst nie może być pusty. –
Poza tym, nazywam to rozwiązaniemViewExternalIntent (this), gdzie "this" jest działaniem, więc niemożliwe jest, aby było puste. –