2013-07-15 36 views
2

我嘗試從PackageManager的第三方包獲取啓動意向。根據文檔(http://developer.android.com/reference/android/content/pm/PackageManager.html#getLaunchIntentForPackage(java.lang.String)),如果在系統中找不到指定的軟件包名稱,則會引發PackageManager.NameNotFoundException,如果軟件包不包含啓動活動,則返回nullAndroid PackageManger.getLaunchIntentForPackage()不引發記錄的異常

當我試圖捕獲異常,我得到一個編譯錯誤:

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塊?

我該如何着手解決這個問題?

我目前正在針對Android 4.2.2構建。

回答

4

該文檔已過時。

「throws NameNotFoundException」已從Android 1.6(API Level 4)中的方法中刪除。

目前從Android 4.0開始執行ApplicationPackageManager.java以後也沒有拋出任何異常。

您可以安全地移除試管。

P.S .:我知道,答案有點延遲,但我偶然發現了同樣的情況,爲什麼不在這裏分享。