0

嗨,我使用了谷歌地图 v2,如果我运行应用程序

public class SocMap extends Activity {

}

打开地图,但我如果运行应用程序

public class SocMap extends FragmentActivity {

}

应用程序崩溃

错误:

04-28 15:10:03.405: E/AndroidRuntime(12041): FATAL EXCEPTION: main
04-28 15:10:03.405: E/AndroidRuntime(12041): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.socmap/com.example.socmap.SocMap}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
04-28 15:10:03.405: E/AndroidRuntime(12041): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
04-28 15:10:03.405: E/AndroidRuntime(12041): Caused by: java.lang.ClassCastException: com.google.android.gms.maps.MapFragment cannot be cast to android.support.v4.app.Fragment
4

5 回答 5

1

如果您想在您的应用程序中实现 Google 地图,并且您希望您的应用程序以 API < 11 为目标,那么您将必须使用FragmentActivity. FragmentActivitygoogle-support-v4库的一部分,基本上为您提供对 API 级别 11 之前系统片段的支持。在这种情况下,您必须导入此库。您可以通过阅读我在 Google 地图集成上写的这篇博文的第 4 步来了解它是如何完成的:

谷歌地图 API V2

你只需要记住,如果这是你的方式,你应该SupportMapFragment为你的地图使用对象而不是MapFragment你当前使用的对象。

另一方面,如果您将应用程序开发到 API 级别 11 或更高级别,则不需要此步骤,您只需使用简单ActivityMapFragment.

于 2013-04-28T12:21:19.690 回答
0

在您的布局中,您看起来像是在使用 MapFragment。android:name="com.google.android.gms.maps.SupportMapFragment"改为在您的 中使用onCreate,像这样获取 MapFragment:

SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.mapFragment); //your SupportMapFragment's id will need to be set to this in your layout.
于 2013-08-31T20:15:49.287 回答
0

试试这个项目,您将获得有关 Google Map v2 的所有答案。

Android 使用 Google Map V2

于 2014-04-15T21:07:36.403 回答
0

请参阅我的博客文章,我试图总结使用适用于 Android 的 Google Maps API V2 构建应用程序所需的一切。

  1. Maps API V2 问题的解决方案(使用 google_play_services_lib)。
  2. 使用 Maps API V2 for minSDK=8 (Android 2.2 Froyo) 创建一个 Android 应用程序。
  3. 使用 Maps API V2 for minSDK=11 (Android 3.0 HoneyComb) 创建一个 Android 应用程序。
于 2013-05-05T11:46:38.873 回答
0

您的错误跟踪显示ClassCastException

java.lang.ClassCastException:com.google.android.gms.maps.MapFragment 无法转换为 android.support.v4.app.Fragment

这意味着您使用的 API 少于 11FragmentActivityMapFragment。尝试使用Activity和更新 API > 11 MapFragment

如果您想继续使用 API < 11,请使用SupportMapFragment而不是MapFragment.

请参阅此以使用 API > 11 Google Map v2实现 MapFragment

于 2018-10-12T12:25:00.687 回答