5

Ich habe Methode, die eine Absicht zu einem Component löst:Warum sollte Activity.getPackageManager() null zurück

private static ComponentName resolveViewExternalIntent(Context context) 
{ 
    Intent intent = createIntent(); 
    return intent.resolveActivity(context.getPackageManager()); 
} 

In seltenen Fällen bekomme ich folgenden ACRA Absturzbericht:

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) 

Diese Linie in Die Intent-Klasse ruft die NPE ab, da der PackageManager null ist.

Ich sehe das selten, aber häufig genug, dass mich diese Frage geschrieben hat.

Hat jemand eine Idee, unter welchen Umständen kann Context/Activity.getPackageManager() null zurückgeben? In meinem Fall ist context das Activity-Objekt selbst, nicht der ApplicationContext. Die App führt in diesem Fall die Lifecycle-Methode Activity.onResume() aus.

+0

Ihr Kontext ist sicher nicht null? –

+0

Wenn es so wäre, würde ich diesen Stack-Trace bekommen? Also, nein, Kontext kann nicht null sein. –

+0

Außerdem rufe ich diese resolveViewExternalIntent (this) auf, wobei 'this' die Aktivität ist, also ist es unmöglich, dass sie null ist. –

Antwort

0

Sie haben die Absicht nicht mit einer Absichtsaktion oder einer expliziten Absicht angegeben. Sie können dies versuchen:

und rufen Sie dann den Paketmanager, um zu überprüfen, dass diese Anwendungen oder Funktionen auf Ihrem Gerät verfügbar sind.

Verwandte Themen