tôi có phương pháp giải quyết Intent để một ComponentName:Tại sao Activity.getPackageManager() trả về null
private static ComponentName resolveViewExternalIntent(Context context)
{
Intent intent = createIntent();
return intent.resolveActivity(context.getPackageManager());
}
Hiếm khi, tôi nhận được báo cáo tai nạn ACRA sau:
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)
Đó dòng trong lớp Intent nhận được NPE vì PackageManager là null
.
Tôi thấy điều này không thường xuyên, nhưng thường xuyên đủ khiến tôi viết câu hỏi này.
Có ai có bất kỳ ý tưởng nào, trong hoàn cảnh nào có thể Context/Activity.getPackageManager() trả về null? Trong trường hợp của tôi, context
là đối tượng Activity, không phải là ApplicationContext. Ứng dụng đang thực hiện phương thức vòng đời Activity.onResume() khi điều này xảy ra.
Ngữ cảnh của bạn không phải là vô giá trị? –
Nếu có, tôi có nhận được dấu vết ngăn xếp đó không? Vì vậy, không, ngữ cảnh không thể rỗng. –
Bên cạnh đó, tôi gọi đây là resolveViewExternalIntent (this) trong đó 'this' là Activity, vì vậy nó không thể là null. –