2013-03-15 129 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