有没有机会检测到这一点并可能显示“您的手机不支持谷歌地图,对不起”之类的东西?
如果你MapActivity没有绑定到启动器图标,也许。我的猜测是您NoClassDefFoundError来自MapActivityMaps V1 SDK 附加组件或其他东西。在这种情况下,Class.forName()在尝试启动任何MapActivity.
此示例项目演示了这一点。启动器图标与一个Theme.NoDisplay活动相关联,该活动具有以下内容onCreate():
public void onCreate(Bundle instanceState) {
super.onCreate(instanceState);
try {
Class.forName("com.google.android.maps.MapActivity");
startActivity(new Intent(this, NooYawk.class));
}
catch (Exception e) {
Toast
.makeText(this,
"Google Maps are not available -- sorry!",
Toast.LENGTH_LONG)
.show();
}
finish();
}
如果我们检查是否MapActivity存在的测试成功,我们可以安全地启动一个MapActivity(这里命名为NooYawk)。如果我们遇到异常,我们只需使用Toast.