我有将 Intent 解析为 ComponentName 的方法:
private static ComponentName resolveViewExternalIntent(Context context)
{
Intent intent = createIntent();
return intent.resolveActivity(context.getPackageManager());
}
很少,我会收到以下 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)
Intent 类中的那一行获得 NPE,因为 PackageManager 是null
.
我很少看到这种情况,但足够频繁地让我写下这个问题。
有谁知道,在什么情况下 Context/Activity.getPackageManager() 可以返回 null?在我的例子中,context
是 Activity 对象本身,而不是 ApplicationContext。发生这种情况时,应用程序正在执行 Activity.onResume() 生命周期方法。