java - 我的 Android 应用程序崩溃了,即使我捕获了它所说的导致崩溃的异常

标签 java android exception-handling

这是我的代码:

private ArrayList<PInfo> getSelectedPackages() {
    ArrayList<PInfo> apps = new ArrayList<PInfo>();
    for (String aname : Lock.getAllowedApps()) {
        try {
            PackageInfo pi = getPackageManager().getPackageInfo(aname, 0);
            PInfo newInfo = new PInfo(pi.applicationInfo, getPackageManager());
            apps.add(newInfo);
        } catch (NameNotFoundException e) {
            ErrorReporter.getInstance().handleSilentException(e);
        }
    }
    return apps;
}

崩溃的行是:

PackageInfo pi = getPackageManager().getPackageInfo(aname, 0);

这没有任何意义,因为我正在捕获错误。希望有人能告诉我我做错了什么,或者这是 Android 的某种错误。这是日志显示的内容:

android.content.pm.PackageManager$NameNotFoundException: com.teachersparadise.dinosaurscoloringbook at android.app.ContextImpl$ApplicationPackageManager.getPackageInfo(ContextImpl.java:1725) at com.nyanapps.lockfortots.free.Home.getSelectedPackages(Home.java:179)

最佳答案

您可能想要确定您的包名称字符串的格式是否正确,并且您可能没有捕获到正确的异常。

注意异常是 PackageManager.NameNotFoundException

http://developer.android.com/reference/android/content/pm/PackageManager.NameNotFoundException.html

关于java - 我的 Android 应用程序崩溃了,即使我捕获了它所说的导致崩溃的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9865262/

相关文章:

c++ - 为什么不使用函数尝试 block 声明 main()?

java - 将类的参数添加到数组中

java - firebase.database.DatabaseException : No properties to serialize found on class

android - 在 firebase 上进行电话身份验证时出错

android - 迁移到 AndroidX 后,启动时出现异常 : java. lang.ClassNotFoundException : "Didn' t find class androidx. core.app.CoreComponentFactory"

spring - 如何在IntelliJ IDEA中应用@ControllerAdvice?

c++ - boost 异常

java - 使用控制台使用git,使用IDE(Eclipse)开发时需要考虑哪些事项?

java - 使用正则表达式匹配算术表达式的组成部分

java - 如何让我的应用程序可以从其他应用程序调用