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

Rag*_*har 2 resources android apk

我正在使用以下代码段来获取SD卡上少数APK的应用程序名称和图标.

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

我能够访问包名称,但loadIcon返回所有apks的默认Android应用程序图标,loadLabel返回包名称(不是应用程序标签).

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

Failure retrieving icon 0x7f020005 in package com.sample.radio
Failure retrieving text 0x7f050000 in package com.taskkiller.demo
Run Code Online (Sandbox Code Playgroud)

我正在运行Android 2.2,任何指针都将受到赞赏.谢谢.

Bak*_*osh 6

在创建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);
Run Code Online (Sandbox Code Playgroud)