ResolveInfo.loadIcon()导致警告 - 垃圾邮件

时间:2016-01-27 08:39:27

标签: android

在我的Android应用程序中,我显示了安装的每个用户应用程序的列表。

一切运行正常,但如下面的代码中所述,调用icon = info.loadIcon(context.getPackageManager());会导致两个恼人的警告。由于我正在加载设备上的每个应用程序,因此会生成大量警告,这些警告会向我的控制台发送垃圾邮件。

尽管有警告,但图标正在加载并显示正常。

我真的没有得到这个警告的来源。怎么调试呢?或者,可以禁用特定代码行的日志输出吗?

这是我的包装类:

public class AppWrapper {
    public final Drawable icon;
    public final String appLabel;
    public final String packageName;

    public AppWrapper(Context context, ResolveInfo info) {

        //Warnings are produced here:
        icon = info.loadIcon(context.getPackageManager());
        /*
         PackageManager: No package identifier when getting value for resource number 0x00000000
         ResourceType: Failure retrieving resources for com.example.app: Resource ID #0x0
         */

        appLabel = info.loadLabel(context.getPackageManager()).toString();
        packageName = info.activityInfo.packageName;
    }
}

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

icon = info.loadIcon(context.getPackageManager());

而不是

icon = context.getPackageManager().getApplicationIcon(info.activityInfo.applicationInfo.packageName);