2013-03-15 69 views
1

我尝试在谷歌地图添加到我的应用,并使用我生成的API代码this教程,添加所有必要的元数据,权限等。每当我按一下按钮,开始一个新的活动应用程序崩溃在我的Galaxy S3充气谷歌地图错误v2的

onClickListener

Button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (v == Button) { 
        startActivity(new Intent(MainActivity.this, ShowMap.class)); 
       } 
      } 
     }); 

地图类

public class ShowMap extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.show_map); 

    } 
} 

show_map.xml

<?xml version="1.0" encoding="utf-8"?> 
<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/map" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:name="com.google.android.gms.maps.MapFragment"/> 

错误

03-15 20:14:51.825: E/AndroidRuntime(18318): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.appname.subappname/com.appname.subappname.ShowMap}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.app.ActivityThread.access$600(ActivityThread.java:140) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.os.Looper.loop(Looper.java:137) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.app.ActivityThread.main(ActivityThread.java:4898) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at java.lang.reflect.Method.invokeNative(Native Method) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at java.lang.reflect.Method.invoke(Method.java:511) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at dalvik.system.NativeStart.main(Native Method) 
03-15 20:14:51.825: E/AndroidRuntime(18318): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:308) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.app.Activity.setContentView(Activity.java:1924) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at com.appname.subappname.ShowMap.onCreate(ShowMap.java:11) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.app.Activity.performCreate(Activity.java:5206) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064) 
03-15 20:14:51.825: E/AndroidRuntime(18318): ... 11 more 
03-15 20:14:51.825: E/AndroidRuntime(18318): Caused by: java.lang.ClassCastException: com.google.android.gms.maps.MapFragment cannot be cast to android.support.v4.app.Fragment 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.support.v4.app.Fragment.instantiate(Fragment.java:394) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.support.v4.app.Fragment.instantiate(Fragment.java:369) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272) 
03-15 20:14:51.825: E/AndroidRuntime(18318): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:676) 
03-15 20:14:51.825: E/AndroidRuntime(18318): ... 20 more 

回答

1

您ShowMap应该扩展FragmentActivity这个工作不Activity,检查包括在谷歌,播放服务队库谷歌地图他们是一个很大的帮助的例子。

编辑

确保您包括谷歌播放服务库项目,作为例外是如何将库项目

+0

这也给出了同样的错误:/ – Onur 2013-03-15 17:34:00

+0

@Onur您可以发布完整的错误堆栈? – 2013-03-15 17:39:23

+0

加入到这个问题 – Onur 2013-03-15 17:49:23

2

ClassNotFoundException: com.google.android.gms.maps.MapFragment

检查this链接com.google.android.gms.maps.MapFragment未找到。检查库google-play-services_lib是否与项目正确链接。

+0

哦,我知道了。它说:“将/extras/google/google_play_services/libproject/google-play-services_lib库项目复制到维护您的Android应用项目的源代码树中。”但我的额外文件夹没有一个文件夹为谷歌。我已经下载了Google Play Services SDK – Onur 2013-03-15 17:59:07

+1

请查看http://stackoverflow.com/questions/14371725/add-google-play-services-to-eclipse-project问题。这可以帮助您将项目添加到工作区。 – andrew 2013-03-15 18:19:42

+0

我将它添加到项目中。他们在同一个工作区,我也在我的项目属性中创建了库,但仍然出现错误。错误堆栈被更新 – Onur 2013-03-15 18:26:34