gpt4 book ai didi

android - PackageManager 为所有应用程序抛出 NameNotFoundException,甚至是我自己的应用程序

转载 作者:太空狗 更新时间:2023-10-29 13:52:25 27 4
gpt4 key购买 nike

我正在从 android 加载所有应用程序,然后将它们显示在我的启动器中(图标 + 名称)。代码如下所示:

public class PhoneAppItem
{
String mPackageName = null;
String mActivityName = null;

String mName = null;
ActivityInfo mActivityInfo = null;

public PhoneAppItem(String packageName, String activityName)
{
mPackageName = packageName;
mActivityName = activityName;
}

public void loadInfo()
{
PackageManager pm = MainApp.get().getPackageManager();
try
{
// following line throws the exception!
mActivityInfo = pm.getActivityInfo(new ComponentName(mPackageName, mActivityName), 0);
// some other code...
}
catch (PackageManager.NameNotFoundException e)
{
L.e(e);
mName = mPackageName;
}
catch (NullPointerException e)
{
L.e(e);
mName = mPackageName;
}
}
}

我的所有 PhoneAppItem 项目的包名称和 Activity 名称都按如下方式检索(对于 android < 5,它与唯一已知的有此问题的设备相关):

List<PhoneAppItem> apps = new ArrayList<>();
ActivityManager activityManager = (ActivityManager) MainApp.get().getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> processInfos = activityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo processInfo : processInfos)
{
try
{
ApplicationInfo ai = pm.getApplicationInfo(processInfo.processName, 0);
if (!excludedPackages.contains(ai.packageName))
apps.add(new PhoneAppItem(ai.packageName, ai.className));
}
catch (PackageManager.NameNotFoundException e) {}
}

我现在有一个用户出现以下异常:

android.content.pm.PackageManager$NameNotFoundException: ComponentInfo{com.package.myapp/com.package.myapp.app.MainApp}
at android.app.ApplicationPackageManager.getActivityInfo(ApplicationPackageManager.java:262)
at com.package.myap.classes.PhoneAppItem.h(PhoneAppItem.java:70)
...

观察

  • 所有应用程序都会抛出上述异常,即使是我的自己的应用程序也是如此
  • 到目前为止,此行为仅适用于使用以下硬件的用户:Lenovo Yoga Tablet HD+ (b8080)、Android 4.4.2

问题

有谁知道为什么会发生这种情况?

最佳答案

如果 processInfo.processName 不起作用,请尝试另一种获取包的方法:

processInfo.pkgList[0]

关于android - PackageManager 为所有应用程序抛出 NameNotFoundException,甚至是我自己的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44651408/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com