6

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)

PackageManager がnull.

これはめったに見ませんが、頻繁にこの質問を書くようになりました。

Context/Activity.getPackageManager() が null を返すことができるのはどのような状況ですか? 私の場合、contextApplicationContext ではなく、Activity オブジェクト自体です。これが発生すると、アプリは Activity.onResume() ライフサイクル メソッドを実行しています。

4

1 に答える 1

0

インテント アクションまたは明示的インテントでインテントを指定していません。これを試すことができます:

 Intent i = new Intent(Intent.ACTION_ZZZ); // Replace ZZZ

次に、パッケージ マネージャーを呼び出して、それらのアプリケーションまたは機能がデバイスで利用可能であることを確認します。

于 2014-04-14T19:35:57.203 に答える