Android 无法从SD卡上的APK访问资源。

Android 无法从SD卡上的APK访问资源。,android,resources,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(p

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

PackageInfo packageInfo = packageManager.getPackageArchiveInfo(apkPath, 0);
ApplicationInfo appInfo = packageInfo.applicationInfo;
Drawable appIcon = appInfo.loadIcon(packageManager);
String appName = appInfo.loadLabel(packageManager).toString();
我可以访问包名,但加载图标返回所有APK的默认Android应用程序图标,加载标签返回包名(而不是应用程序标签)

我在logcat中还收到以下警告消息:

Failure retrieving icon 0x7f020005 in package com.sample.radio
Failure retrieving text 0x7f050000 in package com.taskkiller.demo

我运行的是安卓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);

您有在存储器中读/写的权限吗?我现在尝试将其包括在内,但不起作用:(您需要具体说明需要更改的内容。非常感谢!在使用特定路径专门使用
getPackageArchiveInfo
后,我本以为知道我在说什么APK会很明智……但我想不会!