Android谷歌地图v2

时间:2013-04-28 12:13:26

标签: android google-maps map google-maps-api-2

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

public class SocMap extends Activity {

}

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

public class SocMap extends FragmentActivity {

}

app崩溃

错误:

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

5 个答案:

答案 0 :(得分:1)

如果您想在应用程序中实施Google地图,并希望您的应用程序以API< 11然后你将不得不使用FragmentActivityFragmentActivitygoogle-support-v4库的一部分,基本上支持API级别11之前的系统片段。在这种情况下,您必须导入此库。你可以通过阅读我在Google Maps集成中写的这篇博文的第4步来了解它是如何完成的:

Google Maps API V2

你必须记住,如果这是你的方式,你应该使用SupportMapFragment对象代替你当前正在使用的MapFragment地图。

另一方面,如果您将应用程序开发为API级别11及更高级别,则此步骤不是必需的,您只需使用简单的ActivityMapFragment

答案 1 :(得分:0)

答案 2 :(得分: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.

答案 3 :(得分:0)

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

Android Working with Google Map V2

答案 4 :(得分:0)

您的错误跟踪显示ClassCastException

  

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

这表示您在FragmentActivityMapFragment中使用的API小于11。尝试使用ActivityMapFragment更新API> 11。

如果要继续使用API​​ <11,请使用SupportMapFragment代替MapFragment

请参阅此文章以使用API​​> 11 Google Map v2

来实现MapFragment