Мое приложение Android падает, хотя я улавливаю исключение, вызывающее сбой - PullRequest
4 голосов
/ 26 марта 2012

Вот мой код:

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)

Ответы [ 2 ]

1 голос
/ 26 марта 2012

Возможно, вы захотите убедиться, что строка имени вашего пакета отформатирована правильно, и вы, возможно, не перехватываете правильное исключение.

Обратите внимание, что это исключение PackageManager.NameNotFoundException

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

0 голосов
/ 26 марта 2012

Вы, вероятно, ловите javax.naming.NameNotFoundException, в то время как исключение составляет android.content.pm.PackageManager$NameNotFoundException

Попробуйте catch (Exception e) и проверьте, действительно ли это ваша проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...