java - W/ResourceType:使用 PackageManager.getApplicationInfo() 时出现 ResTable_typeSpec 警告
问题描述
在我的 android 应用程序中,我在循环中多次调用以下函数以获取应用程序的标签/名称:
public String getName(int uid){
String packageName=packageManager.getNameForUid(uid);
ApplicationInfo ai;
try {
ai = packageManager.getApplicationInfo( packageName, 0);
} catch (final PackageManager.NameNotFoundException e) {
System.out.println(uid);
ai = null;
}
return (String) (ai != null ? packageManager.getApplicationLabel(ai) : "(unknown)");
}
对于第一个 onClick(),它会在 Logcat 中产生如下警告:
2020-04-15 18:45:25.219 22291-22340/com.dhruv.test W/ResourceType: ResTable_typeSpec entry count inconsistent: given 32, previously 38
2020-04-15 18:45:25.220 22291-22340/com.dhruv.test W/ResourceType: ResTable_typeSpec entry count inconsistent: given 2167, previously 2164
2020-04-15 18:45:25.220 22291-22340/com.dhruv.test W/ResourceType: ResTable_typeSpec entry count inconsistent: given 268, previously 1515
但在连续点击时不会发生。由于这些警告,循环的执行时间变为~600ms,否则只需要~200ms 来迭代。
解决方案
推荐阅读
- wpf - 解决由于 dataBinding 而生成的 WPF 内存泄漏问题
- node.js - Google Sheet npm 包更新表与排序数据(Node.js)
- asynchronous - Mocha 测试异步函数,它没有显式返回一个承诺
- kubernetes - 如何从 POD 中获取运行 POD 的节点的主机名
- python - TypeError: <<: 'str' 和 'int' 的操作数类型不受支持
- python - 根据列表中的项目删除重复的嵌套列表
- c# - 图像未显示在 C# 的列表视图中
- ruby-on-rails - 在 iframe 中提供服务时,Rails 应用程序返回 422 响应(无法验证 CSRF 令牌真实性)
- java - Java Runtime.exec 使用 GZIP 返回 1
- python - 如何更改 tkinter 画布中文本对象中间的单个单词的颜色?