我是android编程的新手。我使用Eclipse创建了一个带有MainActivity.java和ClassFragment.java文件的应用程序。ClassFragment是一种装饰。我使用的是最新更新的appcompat库。我只想在我的片段中实现一个toast,它将显示应用程序的版本vode和版本名称。我使用了下面的代码PackageManager pInfo = getActivity().getPackageManager.getPackageInfo(getActivity().getPackageName, 0);
,但它显示了java编译错误: PackageManager名称未发现异常。请帮我解决这个问题。提前谢谢。
发布于 2021-11-11 01:29:34
因为有一个behaviour change in Android API level 30,所以当我们在Android11上调用getPackageInfo时,即使应用程序/包应用程序安装在用户的设备上,我们也会得到NameNotFoundException。在Android API30中,我们需要在清单中指定包名称,以便检查该包是否安装在用户的设备上。
<?xml version="1.0" encoding="utf-8"?>
<manifest
...>
<queries>
<package android:name="com.example.Maps" />
</queries>
<application
android:name=".Notes App"
.../>
</manifest>
发布于 2016-01-11 08:19:14
PackageManager manager = getActivity().getPackageManager();
PackageInfo info;
try {
info = manager.getPackageInfo(getActivity().getPackageName(), 0);
String strVersion = "Version: " + info.versionName;
String strVersionCode = " Build: "+ info.versionCode);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
https://stackoverflow.com/questions/34709873
复制