首页 > 解决方案 > 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 中的某些东西上。我唯一能想到的是有根电话?

这个按钮漂浮在谷歌地图的顶部,当应用启动时我们会检查谷歌播放服务,所以除非你已经在应用中看到谷歌地图,否则你无法到达这一点。

标签: androidandroid-activitygoogle-maps-android-api-2android-maps

解决方案


确保输入您的代码,

try {

    //Put your code here

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

因为当您设置打开特定应用程序的意图时,该应用程序可能未安装在该设备中(在您的情况下是三星手机),因此找不到下面的 calss 并引发异常。

intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");

推荐阅读