2016-02-29 74 views
1

指定Android#startActivity(Intent)以抛出android.content.ActivityNotFoundException,如果没有发现运行给定Intent的Activity。来自Activity#startActivity的IllegalArgumentException(意图)

我因此有像

try { 
    // Try to start activity provided by external app: 
    startActivity(intent); 
} catch (ActivityNotFoundException e) { 
    // [...] Inform user about external app needed 
    // for this functionality to work. 
} 

其捕捉ActivityNotFoundException来处理,其中未安装外部应用程序的情况下的代码。

但是,从Google Play开发者控制台的崩溃& ANR部分,我开始将崩溃次数设为IllegalArgumentException: Unknown component com.example.package/com.example.package.Activity。代码调用startActivity()是否准备好处理该异常?这是一个框架错误(或文档错误)?

+0

您是否已在清单中定义此活动? –

+0

不,该活动是在外部应用程序中定义的(可能会或可能不会安装)。 – fornwall

回答

0

这种异常通常在您尚未在清单文件中声明时产生。所以,尽量在某处做 您的应用程序标签内做到这一点

<activity 
      android:name="Your_Activity_Name" 
      android:theme="Whatever your theme is" 
      </activity> 

如果它的任何其他问题,请让我知道。

+0

该活动由外部应用程序定义,该应用程序可能会或可能不会由用户安装。我试图捕获'ActivityNotFoundException'来处理应用程序未安装时的情况。 – fornwall

0

您可以使用此代码来检查它。这是更好的方法,然后处理异常

List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, 
      PackageManager.MATCH_DEFAULT_ONLY); 

if (list.size() > 0) 
{ 
// start your activity 
} 
相关问题