Android - 应用程序标签的 ResourceNotFoundException

发布于 2024-12-06 17:41:08 字数 741 浏览 1 评论 0原文

我想知道是否有人可以帮助我。我在我的 Android 应用程序中收到一个 ResourceNotFoundException 异常。 当运行以下代码时会发生这种情况(异常发生在 getString() 调用上)

        context = getApplicationContext();
        PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
        String appName = context.getString(pInfo.applicationInfo.labelRes);

在我的 AndroidManifest.xml 中,我有 android:label 应用程序和activtiy 标签的属性集。

当我 使用调试器我可以看到 PackageInfo.ApplicationInfo 对象包含 labelRes 的值 0,这解释了异常。

奇怪的是,我为 AndroidManifest.xml 中的 android:label 属性设置的值包含在 nonLocalizedLabel 属性。有谁知道这是怎么发生的? 我已检查上下文对象返回的包名称对于我的应用程序来说是正确的

I am wondering if anyone can help me. I am getting a ResourceNotFoundException in my android application.
It occurs when the following code is run (the exception occurs on the getString() call)

        context = getApplicationContext();
        PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
        String appName = context.getString(pInfo.applicationInfo.labelRes);

In my AndroidManifest.xml I have the android:label attribute set for the application and activtiy tags.

When I
use the debugger I can see that the PackageInfo.ApplicationInfo object contains value 0 for labelRes and that explains the exception.

The weird thing is that the value that I set for the android:label attribute in AndroidManifest.xml is contained in the
nonLocalizedLabel attribute. Does anyone know how this could happen?
I have checked that the package name returned by the context object is the correct one for my application

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

归属感 2024-12-13 17:41:08

我找到了这个问题的答案。解决方案是

        ApplicationInfo appInfo = context.getApplicationInfo();
        String appName = (String) context.getPackageManager().getApplicationLabel(appInfo);

改为使用并且有效

I found the answer to this. The solution was to use

        ApplicationInfo appInfo = context.getApplicationInfo();
        String appName = (String) context.getPackageManager().getApplicationLabel(appInfo);

instead and it worked

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文