为什么PackageInfo总是为空?

问题描述 投票:0回答:1

我正在使用 Xamarin 开发一个具有通用主干和两个适用于 android 和 UWP 的侧分支的项目。

该项目是一个用C#构建的应用程序。

由于某种原因,PackageInfo 总是返回空。如果我的测试手机上安装了大量应用程序,那怎么可能?包括我要找的那个吗?

任何帮助将不胜感激,因为我需要这个来工作,而且我已经被这个问题困扰了几个星期。

如果缺少您理解的信息或类似的问题已经存在,请告诉我。

非常感谢。

我正在尝试验证我的应用程序通过意图调用的应用程序是否存在。作为第一步,我尝试为此目的检索 PackageInfo,以便我可以检查其中的包名称。

c# android xamarin
1个回答
0
投票

Flutter 中 package_info 包返回空 PackageInfo 对象可能有多种原因。以下是一些可能的原因和解决方案:

  1. 平台不匹配:

确保您使用的是特定于平台的软件包版本。例如,对于 Android 使用 package_info_android,对于 iOS 使用 package_info_ios。 2. 缺少权限:

PackageInfo 需要 Android 和 iOS 上的特定权限才能访问应用程序信息。确保您已请求并授予必要的权限: Android:将 android:uses-permission android:name="android.permission.GET_PACKAGE_DETAILS" 添加到 AndroidManifest.xml 文件中。 iOS:将 NSCameraUsageDescription 键添加到您的 Info.plist 文件中,并包含访问应用程序信息的描述性原因。 3. 渠道或版本错误:

确保您使用正确的软件包渠道(例如稳定版、开发版)和版本。过时的版本或不稳定的渠道可能存在错误或限制。 4. 构建配置问题:

检查您的构建配置。在您的发布或调试版本中包含或编译该包的方式可能存在问题。 5.异步初始化:

PackageInfo 异步检索信息。导入包后立即获取信息时,可能为空。使用await PackageInfo.fromPlatform().then((PackageInfo packageInfo) => {...}) 确保在访问信息之前检索信息。 故障排除提示:

打印PackageInfo.fromPlatform()的返回值,看看它是否为null或包含空值。 查看软件包文档和发行说明以了解已知问题或更改。 在物理设备或模拟器上运行您的应用程序,以确认真实设备上是否存在问题。 加入该包的 GitHub 讨论论坛或 StackOverflow 问题以获得社区支持。 通过执行这些步骤并调查潜在原因,您应该能够识别并修复导致 Flutter 应用程序中 PackageInfo 为空的问题。

如果您在诊断问题时需要进一步帮助,请记住提供有关您的具体设置和代码的更多详细信息。

© www.soinside.com 2019 - 2024. All rights reserved.