当我尝试在 Android 浏览器中打开本地 HTML 文件时,遇到一个奇怪的错误。发生的错误是找不到活动异常:
android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.browser/com.android.browser.BrowserActivity}; have you declared this activity in your AndroidManifest.xml?
对我来说真正奇怪的是这个错误并没有发生在所有设备上。它仅出现在以下设备上:
- 三星 Galaxy Nexus I (4.1.1)
- 三星 Galaxy Nexus II (4.1.1)
- 索尼平板电脑 S (4.0.3)
我已在以下设备上成功测试了我的代码:
- 三星 Galaxy S I (4.1.1)
- 三星 Galaxy S III
- HTC One X
- HTC Desire S
- 三星 Galaxy S Plus (2.3.3)
- 三星 Galaxy Tab 10.1N
- Android 版本从 2.3.3 到 4.1.0 的 AVD
最后,这是我用来使用 Android 浏览器打开 HTML 文件的代码。我已经测试了这段代码的几种排列,省略了一些行,但它们确实具有相同的效果。一旦我设置组件或类,我就会得到上述异常。
Uri uri = Uri.parse(filePath);
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setComponent(new ComponentName("com.android.browser", "com.android.browser.BrowserActivity"));
browserIntent.setDataAndType(uri, "text/html");
browserIntent.addCategory(Intent.CATEGORY_BROWSABLE);
context.startActivity(browserIntent);
我也尝试过
browserIntent.setClassName("com.android.browser", "com.android.browser.BrowserActivity");
代替
browserIntent.setComponent(new ComponentName("com.android.browser", "com.android.browser.BrowserActivity"));
但同样的效果...
有人知道为什么会发生这种情况吗?我错过了什么吗?我已经搜索了几天,但找不到任何可以解决我的问题的东西......
预先非常感谢,
干杯