您好我使用谷歌地图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
答案 0 :(得分:1)
如果您想在应用程序中实施Google地图,并希望您的应用程序以API< 11然后你将不得不使用FragmentActivity
。 FragmentActivity
是google-support-v4
库的一部分,基本上支持API级别11之前的系统片段。在这种情况下,您必须导入此库。你可以通过阅读我在Google Maps集成中写的这篇博文的第4步来了解它是如何完成的:
你必须记住,如果这是你的方式,你应该使用SupportMapFragment
对象代替你当前正在使用的MapFragment
地图。
另一方面,如果您将应用程序开发为API级别11及更高级别,则此步骤不是必需的,您只需使用简单的Activity
和MapFragment
。
答案 1 :(得分:0)
请参阅我的博客文章,我试图总结所有需要使用Google Maps API V2 for Android构建应用程序。
答案 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的所有答案。
答案 4 :(得分:0)
您的错误跟踪显示ClassCastException
java.lang.ClassCastException:com.google.android.gms.maps.MapFragment无法转换为android.support.v4.app.Fragment
这表示您在FragmentActivity
和MapFragment
中使用的API小于11。尝试使用Activity
和MapFragment
更新API> 11。
如果要继续使用API <11,请使用SupportMapFragment
代替MapFragment
。
请参阅此文章以使用API> 11 Google Map v2
来实现MapFragment