java - Android PackageManger.getLaunchIntentForPackage() 没有抛出记录的异常

标签 java android android-4.2-jelly-bean

我尝试从 PackageManager 获取第三方包的启动 Intent 。根据文档 ( http://developer.android.com/reference/android/content/pm/PackageManager.html#getLaunchIntentForPackage(java.lang.String) ),如果在系统上找不到给定的包名称,它会抛出一个 PackageManager.NameNotFoundException,如果没有,它会返回 null包含启动 Activity 。

当我 try catch 异常时,出现编译错误:

    PackageManager manager = getPackageManager();
    try{
        Intent launchAppIntent = manager.getLaunchIntentForPackage("somePackageName");
        //...
    } catch (PackageManager.NameNotFoundException exception){

    }

java: exception android.content.pm.PackageManager.NameNotFoundException is never thrown in body of corresponding try statement

我认为一种可能性是该方法的行为发生了变化,它总是返回 null 而不是抛出异常。但是,我还应该在调用周围包装一个 try block 吗?

我应该如何着手解决这个问题?

我目前正在针对 Android 4.2.2 进行构建。

最佳答案

文档已过时。

“throws NameNotFoundException”已从 Android 1.6 中的方法中删除(API 级别 4)。

ApplicationPackageManager.java 中的当前实现从 Android 4.0 开始也不会抛出任何异常。

您可以安全地删除 try catch。

P.S.:我知道,答案有点延迟,但我偶然发现了同样的问题,所以为什么不在这里分享。

关于java - Android PackageManger.getLaunchIntentForPackage() 没有抛出记录的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17648446/

相关文章:

java - 从 Java Batch 应用程序访问 OAuth2 protected api

android - 如何在Android系统上编译运行C/C++程序

java - 在 C/NDK 中使用太多内存?

android - 无法将 Nexus 4 连接到 adb : unauthorized

java - java从网页中提取图像

java - Spark : Job restart and retries

java - 不同的应用程序签名问题android?

java - Android XML-RPC 库?

android - appcompat-v7 v21.0.0 导致使用 Android v4.2.2 的三星设备崩溃

Android 搜索栏自定义拇指卡在开始