【问题标题】:ActivityNotFound even when Activity is present [duplicate]ActivityNotFound 即使存在 Activity [重复]
【发布时间】:2012-09-12 19:50:30
【问题描述】:

可能重复:
Intent for editing plain text file with the installed file editor (if any)

我正在尝试打开一些已下载的文本文件。当我有意图地启动活动时,它会给出 ActivityNotFound 异常。

try {
    Uri path = Uri.parse(path+"/sampletext.txt");
    Intent intent = new Intent(Intent.ACTION_VIEW);
    PackageManager packageManager = ctx.getPackageManager();
    intent.setType("text/plain") ;
    List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
    if (list.size() > 0 ) {
        intent.setDataAndType(path, "text/plain");
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        ctx.startActivity(intent) ;
    } 

} catch (Exception e){
    e.printStackTrace() ;
}

我调试的时候发现list.size是1。

还有其他我遗漏的信息吗?

任何点都会对我有所帮助。

谢谢。

【问题讨论】:

  • 我可以从文件浏览器打开同一个文件,但不能从我的应用程序中打开。
  • @Merlin 我不想编辑文件..我需要打开文件阅读..
  • @Merlin,Mimetype 错误,但在这里我可以看到活动,但仍然无法启动..

标签: android exception android-intent start-activity


【解决方案1】:

当清单文件中没有声明匹配的活动或没有被另一个应用程序注册为共享活动时,通常会遇到 ActivityNotFound 异常。

您可能需要编辑路径:

Uri path = Uri.parse("file://" + path + "/sampletext.txt");

更好的方法是使用便捷方法:

Uri data = Uri.fromFile(file);

但您需要创建一个 File 对象才能使用该方法

【讨论】:

  • 当我调试时,我发现我从 queryIntentActivities(..) 得到的响应中列出了快速办公 [在我的 HTC 手机上]。
  • 你认为文件路径会触发 ANF 异常而不是 FileNotFound 异常吗?
  • 不是真的,但你从来没有现在 android 在幕后做什么......值得一试
  • 没问题...不过您是对的... FileNotFoundException 或 InvalidIntentDataException 会更有意义,最终也会更有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多