11

インストールされているアプリケーション名をAndroidで表示するための小さな方法を作成しました。しかし、「name」属性を指定すると、例外エラーが表示されます。そして、「packageName」を指定すると、メソッドは完全に実行され、パッケージ名がリストに表示されます

private void getInstalledApps() {
    // TODO Auto-generated method stub
     PackageManager packageManager=this.getPackageManager();
        List<ApplicationInfo applist=packageManager.getInstalledApplications(0);


        Iterator<ApplicationInfo> it=applist.iterator();
        while(it.hasNext()){
            ApplicationInfo pk=(ApplicationInfo)it.next();

            String appname=pk.name.toString();

            installedapplist.add(appname);
        }

}

上記のコードでは、指定String appname=pk.packageName.toString()すると正常に動作しますが、指定するとString appname=pk.name.toString()プログラムが例外エラーをスローします。問題を解決するのを手伝ってください。

4

2 に答える 2

26

nameフィールドがnullであるため、コードがNullPointerExceptionをスローしていると思います。いずれにせよ、おそらくあなたが望むのは次のとおりです。

String appname = packageManager.getApplicationLabel(pk).toString()
于 2011-07-27T00:58:32.030 に答える