android - 无法访问SD卡上APK中的资源。

原文 标签 android resources apk

我正在使用以下代码片段获取我的SD卡上几个APK的应用程序名称和图标。

PackageInfo packageInfo = packageManager.getPackageArchiveInfo(apkPath, 0);
ApplicationInfo appInfo = packageInfo.applicationInfo;
Drawable appIcon = appInfo.loadIcon(packageManager);
String appName = appInfo.loadLabel(packageManager).toString();

我可以访问包名称,但是loadicon返回所有apk的默认android应用程序图标,loadlabel返回包名称(而不是应用程序标签)。
我在logcat中还收到以下警告消息:
Failure retrieving icon 0x7f020005 in package com.sample.radio
Failure retrieving text 0x7f050000 in package com.taskkiller.demo

我运行的是android 2.2,任何指针都会很感激。谢谢。

最佳答案

在创建appicon appname之前,可能需要添加两行:

PackageManager pm = getPackageManager();
PackageInfo    pi = pm.getPackageArchiveInfo(APKFilePath, 0);

// NEW LINES
pi.applicationInfo.sourceDir = APKFilePath;
pi.applicationInfo.publicSourceDir = APKFilePath; 

String   AppName = (String)pi.applicationInfo.loadLabel(pm);
Drawable appIcon=pm.getApplicationIcon(pi.applicationInfo);

相关文章:

android - 带有自定义布局的ActionBar在Android 4.4.2(KitKat)上不占用全屏宽度

c - CMAKE资源文件中WINAPI的对话框资源返回语法错误

android - 如何在Activity中覆盖getResources

android - 将apk文件上传到市场时出错

android - 如何通过Bluestacks在Mac上运行apk文件

android - Android的ImageButton的OnClickListener

android - 无法获取GCM配置文件

java - 如何从子包访问主要的res / layout /文件?

android - Android APK未安装在设备中

android - 共享元素过渡