我尝试从PackageManager
的第三方软件包中获取启动意图。根据文档(http://developer.android.com/reference/android/content/pm/PackageManager.html#getLaunchIntentForPackage(java.lang.String)),如果在系统上找不到给定的包名称,则会抛出PackageManager.NameNotFoundException
,如果包不包含启动活动,则返回null
。 / p>
当我尝试捕获异常时,出现编译错误:
PackageManager manager = getPackageManager();
try{
Intent launchAppIntent = manager.getLaunchIntentForPackage("somePackageName");
//...
} catch (PackageManager.NameNotFoundException exception){
}
java:exception android.content.pm.PackageManager.NameNotFoundException永远不会 抛出相应的try语句的主体
我认为一种可能性可能是该方法的行为发生了变化,它总是返回null
而不是抛出异常。但那么,我是否还应该围绕通话包装一个试块?
我应该如何解决这个问题?
我目前正在针对Android 4.2.2进行构建。
答案 0 :(得分:4)
文档已过时。
已从Android 1.6(API级别4)中的方法中删除“throws NameNotFoundException”。
从Android 4.0开始,ApplicationPackageManager.java中的当前实现也不会引发任何异常。
您可以安全地删除try catch。
P.S。:我知道,答案有点延迟,但我偶然发现了,所以为什么不在这里分享。