- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个 .java
文件:
....
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
....
/* PackageInfo packageInfo =
getPackageManager().getPackageInfo(getPackageName(),0);
curVersionCode = packageInfo.versionCode;*/
PackageManager pm = getPackageManager();
String pn = getPackageName();
PackageInfo pi = pm.getPackageInfo(pn,0);
curVersionCode = pi.versionCode;
....
为了理解错误,我将代码分为四行。如您所见,两行代码在注释中。现在,此代码不起作用,并在我尝试构建时在此处给出错误 PackageManager.NameNotFoundException
。为清楚起见,我在不同的文件中使用了这段代码,它在那里没有引起任何错误;所以不需要担心包名。现在这个错误背后的原因是什么?还附上一张图片以明确错误。
为了解决这个问题,我也尝试了这些:this.getPackageManager()
、getBaseContext().getPackageManager()
和 getApplicationContext().getPackageManager( )
;但这一切都是徒劳的。
最佳答案
最初回答 here
Android API 级别 30 中存在一项行为更改,因此即使在用户设备上安装了应用程序/软件包应用程序,我们在 Android 11 上调用 getPackageInfo 时也会收到 NameNotFoundException。从 Android API 30 开始,我们需要在 list 中指定包名称,以检查用户设备上是否安装了该包。
例如,在检查用户设备上是否安装了 youtube 应用程序之前,我们需要在应用程序 list 文件中指定 Youtube 包,
<?xml version="1.0" encoding="utf-8"?>
<manifest
...>
<queries>
<package android:name="com.google.android.youtube" />
</queries>
<application
android:name=".Notes App"
.../>
</manifest>
关于java - PackageManager.NameNotFoundException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50807771/
我从我的 Java EE Web 应用程序中收到此注入(inject)/JNDI 查找错误: type Exception report message descriptionThe server e
安装 ADT r22 后,每次关闭我的应用程序时,我都会在 LogCat 中收到此异常: E/LuckyLauncherView(227): in setViewEveryArea() E/Lucky
我正在运行一个使用 JBoss5 容器的 ejb 示例。我正在使用一个例子 from here(Part one) . 在示例中,我在 JBoss 中部署了 bean,在 Tomcat 中部署了一个应
我从 Crashlytics 收到错误消息,指出某些设备缺少 com.google.android.webview。这怎么可能? java.lang.RuntimeException: Unable
我再次搜索这个问题,我无法使用 java config 找到 jndi 数据库。在此之前,我使用 xml 并且它工作得很好,但在 java 配置中它会导致问题; XML 代码:
出现此异常时我正在使用 spring-ldap: 服务器未知异常:[LDAP: error code 32 - No Such Object]; nested exception is javax.n
我正在开发一个 Java 企业应用程序,该应用程序具有与 EAR 捆绑在一起的 EJB 层和 WEB 层。我面临的问题是,我的 EJB 层中有一些实体,当我尝试在 WEB 层中通过 JNDI 获取它们
我使用 com.sun.jersey.spi.spring.container.servlet.SpringServlet 创建了两个 Jersey servlet 项目。我使用 Jersey 1.1
我正在尝试构建一个通知并显示它,还为我正在显示的 Intent 构建一个堆栈。但是我得到一个 NameNotFoundException。 Intent resultIntent = new Inte
我有这个非常简单的代码(Glassfish 3.1.2): Context ic = new InitialContext(); ConnectionFactory connectionFactory
我想从 jetty 切换到 tomcat。我得到 NameNotFoundException,因为 tomcat 没有找到在 jetty-web.xml 中并在 applicationContext.
我有这个非常简单的代码(Glassfish 3.1.2): Context ic = new InitialContext(); ConnectionFactory connectionFactory
更新:好吧,似乎只有当我尝试在本地调试时才会出现这个问题。在 Jetty(不是同一台机器)上发布时效果很好。本地调试时是否可以配置Run-Jetty-Run使用的jetty.xml文件? 我只是浪费了
我不明白为什么会出现这个异常。 在我的主要 Activity 中,在 onCreate 方法中我首先有这段代码: try { PackageInfo info = this.ge
我有一个 .java 文件: .... import android.content.pm.ApplicationInfo; import android.content.pm.PackageI
我正在将我的 spring jsf 项目从 ANT 迁移到 maven,同时在 jboss 5 服务器中部署时出现以下错误。 错误 [ContextLoader] 上下文初始化失败org.spring
这可能是非常基本的,但我已经坚持了几个小时了,所以请听我说完。 我正在尝试在 Eclipse 中 Glassfish 4.0 上的 Java 7 Web 应用程序中进行基于 JDBCRealm 的身份
我在 netbean 7.3 中用 jboss-7.1.1 Final 创建了一个 Ejb 项目 在 Ejb 模块中我有这些: LibrarySessionBeanRemote.java packag
我遇到一个问题,出现以下错误。项目有关于此服务的 jar 和我的 web.xml 以下 请帮助我。 ejb/KpsSessionFacade Session tr.com.m
我无法将 Weblogic (12c) 定义的 JNDI 数据源映射到本地 jndi 名称。 我在 weblogic mysql 数据源中有一个数据源定义为“mysqltestds”,我想将 Web
我是一名优秀的程序员,十分优秀!