android.content.res.Resources$NotFoundException: String resource ID #0x7f060000
try {
PackageInfo packageInfo = pm.getPackageArchiveInfo(apkPath, 0);
ApplicationInfo appInfo = packageInfo.applicationInfo;
String appName= appInfo.loadLabel(pm).toString();
Log.e("appName","appName="+appName);
} catch (Throwable t) {
Log.e(MainActivity.this.getClass().getName(), "Error loading application label for " + app.packageName, t);
}
12上面没有这个现象,13出现这个问题;
Failure retrieving text 0x7f060000 in package kr.hwangti.batterylog
但是源码里面的PackageInstaller应用又是可以解析到的apk的图标和名称
com.android.packageinstaller.wear.WearPackageInstallerService.java
private void installPackage(Bundle argsBundle) {
...
ApplicationInfo appInfo = pkgInfo.applicationInfo;
appInfo.sourceDir = tempFile.getPath();
appInfo.publicSourceDir = tempFile.getPath();
getLabelAndUpdateNotification(packageName,
getString(R.string.installing_app, appInfo.loadLabel(pm)));
...
}
解决方法,在调用loadLabel之前加上这两句可以
applicationInfo.sourceDir = apkPath;
applicationInfo.publicSourceDir = apkPath;
网友评论