devo metodo che risolve l'intento di un ComponentName:Perché sarebbe Activity.getPackageManager() ritorna null
private static ComponentName resolveViewExternalIntent(Context context)
{
Intent intent = createIntent();
return intent.resolveActivity(context.getPackageManager());
}
Raramente, ottengo il seguente relazione crash ACRA:
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)
Quella linea in la classe Intent ottiene l'NPE perché PackageManager è null
.
Questo lo vedo raramente, ma abbastanza frequentemente da farmi scrivere questa domanda.
Qualcuno ha qualche idea, in quali circostanze Context/Activity.getPackageManager() restituisce null? Nel mio caso, context
è l'oggetto Activity stesso, non il ApplicationContext. L'app sta eseguendo il metodo del ciclo di vita Activity.onResume() quando ciò accade.
Il tuo contesto non è nullo di sicuro? –
Se lo fosse, otterrei quella traccia dello stack? Quindi, no, il contesto non può essere nullo. –
Inoltre, chiamo this resolveViewExternalIntent (this) dove 'this' è l'Activity, quindi è impossibile che sia null. –