Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PackageManager.NameNotFoundException_Java_Android - Fatal编程技术网

Java PackageManager.NameNotFoundException

Java PackageManager.NameNotFoundException,java,android,Java,Android,我有一个.java文件: .... import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; .... /* PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(),0);

我有一个
.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()
;但这一切都是徒劳的

pm.getPackageInfo
抛出需要处理的
PackageManager.NameNotFoundException
。只需用try-catch将其包装如下:

    final PackageManager pm = getPackageManager();
    final String pn = getPackageName();
    PackageInfo pi = null;
    try {
        pi = pm.getPackageInfo(pn, 0);
    } catch (NameNotFoundException e) {
        //LOG the exception
    }
    curVersionCode = pi!=null ? pi.versionCode:-1;

这是一个选中的异常-请阅读源代码文档:
如果在系统上找不到具有给定名称的包,则抛出{@link name notfoundexception}。
-我怀疑您已经在try/catch块中找到了其他代码。是的,您是对的。另一个代码是try/catch。非常感谢你。