我有将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()生命周期方法。
答案 0 :(得分:0)
您未使用意图操作或明确意图指定意图。你可以试试这个:
Intent i = new Intent(Intent.ACTION_ZZZ); // Replace ZZZ
然后调用包管理器检查您的设备上是否有这些应用程序或功能。