android - Google 自己的 MapsActivity 如何在三星手机上导致 ClassNotFoundException?
问题描述
我昨天在我的 Google Play 控制台中遇到了最奇怪的错误。
我有一个按钮可以在 Google Map 应用程序中打开路线。用了好几年了。看起来像这样:
Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?f=d&daddr=" +
lat + "," + lon));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
activity.startActivity(intent);
昨天我收到了这个错误日志:
Samsung Galaxy J6+ (j6primelte), Android 8.1
android.content.ActivityNotFoundException:
我无法让全世界理解这是怎么发生的,我以前从未见过。有谁比我更了解?
编辑:显然我知道我可以尝试/抓住它。那不是我的问题。我想知道如何在三星上获得 ActivityNotFound 在谷歌地图 API 中的某些东西上。我唯一能想到的是有根电话?
这个按钮漂浮在谷歌地图的顶部,当应用启动时我们会检查谷歌播放服务,所以除非你已经在应用中看到谷歌地图,否则你无法到达这一点。
解决方案
确保输入您的代码,
try {
//Put your code here
} catch (Exception e) {
e.printStackTrace();
}
因为当您设置打开特定应用程序的意图时,该应用程序可能未安装在该设备中(在您的情况下是三星手机),因此找不到下面的 calss 并引发异常。
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
推荐阅读
- excel - Microsoft.Office.Interop.Excel - 在 vb.net 中使用 UTF-8 编码将 .xlsx 转换为 .csv
- c# - 使用 ViewModel 在 xaml 中显示列表
- android - Build celadon android source error: : Please resolve Conflict(s) and re-run lunch
- reactjs - React Material Table:一次编辑所有行
- java - Gradle + Netbeans/IntelliJ IDEA、printf() 和 print() 不起作用,但 println() 是,有什么解决方法吗?
- php - 大括号内的 PHP preg_replace 模式,但忽略方括号内的“标志”
- python - Django Python:将价格转换为条纹金额
- java - 错误:java.lang.UnsatisfiedLinkError with Charuco Camera Calibration (DetectorParameters)
- java - 在 CLI 和代码中重现斯坦福 CoreNLP 奥斯汀演示时的不同精度/召回/f1 值
- javascript - 如何将正确答案放在建议的答案中?(简单的方程式测验)