2014-01-21 21 views
-1

我是Android新手,我試圖將google地圖與我的應用程序集成在一起,我嘗試了vogella和androidhive,並且看到了堆棧溢出時的問題和答案,但是這裏沒有任何東西是Android代碼Android Map集成異常

private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; //10 metters 

    //The minimum time beetwen updates in milliseconds 
    private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1; // 1 minute 
    @SuppressLint("NewApi") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.mainscreen); 
    // .findFragmentById(R.id.map)) 
    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); 

     if (map!=null){ 
      Marker hamburg = map.addMarker(new MarkerOptions().position(HAMBURG) 
       .title("Hamburg")); 
      Marker kiel = map.addMarker(new MarkerOptions() 
       .position(KIEL) 
       .title("Kiel") 
       .snippet("Kiel is cool") 
       .icon(BitmapDescriptorFactory 
        .fromResource(R.drawable.ic_launcher))); 
     } 

} 

下面是XML代碼

<fragment 
android:id="@+id/map" 
android:name="com.google.android.gms.maps.MapFragment" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
class="com.google.android.gms.maps.SupportMapFragment" /> 

,在這裏我有例外情況,請告訴我,我錯了

01-21 23:26:47.304: E/AndroidRuntime(1456): FATAL EXCEPTION: main 
01-21 23:26:47.304: E/AndroidRuntime(1456): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.geekdev.animalpark/com.geekdev.animalpark.MainScreen}: android.view.InflateException: Binary XML file line #54: Error inflating class fragment 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.os.Looper.loop(Looper.java:137) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.app.ActivityThread.main(ActivityThread.java:5041) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at java.lang.reflect.Method.invoke(Method.java:511) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at dalvik.system.NativeStart.main(Native Method) 
01-21 23:26:47.304: E/AndroidRuntime(1456): Caused by: android.view.InflateException: Binary XML file line #54: Error inflating class fragment 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.app.Activity.setContentView(Activity.java:1881) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at com.geekdev.animalpark.MainScreen.onCreate(MainScreen.java:57) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.app.Activity.performCreate(Activity.java:5104) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  ... 11 more 
01-21 23:26:47.304: E/AndroidRuntime(1456): Caused by: java.lang.ClassCastException: com.google.android.gms.maps.SupportMapFragment cannot be cast to android.app.Fragment 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.app.Fragment.instantiate(Fragment.java:585) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.app.Fragment.instantiate(Fragment.java:560) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.app.Activity.onCreateView(Activity.java:4709) 
01-21 23:26:47.304: E/AndroidRuntime(1456):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 


<uses-sdk 
    android:minSdkVersion="17" 
    android:targetSdkVersion="17" /> 
<permission 
    android:name="com.geekdev.animalpark.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature" /> 
<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true" /> 
<uses-permission android:name="com.geekdev.animalpark.permission.MAPS_RECEIVE" /> 

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 


<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.INTERNET" /> 

     <!-- Goolge Maps API Key --> 
<meta-data 
    android:name="com.google.android.maps.v2.API_KEY" 
    android:value="AIzaSyCSzy5IWRWvMUn8xt5I17Z-1l7xtzYM0Js" /> 

我已經試過,我發現在互聯網上的一切,但沒有任何事情在這裏工作,請告訴我合適的解決方案這個請請

+0

地圖api不使用支持庫嗎?如果是這樣,您需要使用getSupportFragmentManager()並使用support.Fragment而不是內置的Fragment類。 – natez0r

+0

哪裏有解決方案請告訴我 – user3193538

+0

@CommonsWare你發送的鏈接沒有工作 – user3193538

回答

0

元數據應該是應用標籤的一部分

<meta-data 
    android:name="com.google.android.maps.v2.API_KEY" 
    android:value="AIzaSyCSzy5IWRWvMUn8xt5I17Z-1l7xtzYM0Js" /> 

編輯:

<application> 
    <activity 
       ... 
    .. 
    .. 
      </activity> 
     <meta-data 
      android:name="com.google.android.maps.v2.API_KEY" 
      android:value="Yourkey" /> 
</application> 
+0

class =「com.google.android.gms.maps.SupportMapFragment」刪除這一行。你minSDK版本是17 –

+0

進入是否正確? \t <元數據 機器人< - - Google網上地圖API密鑰!>:NAME = 「com.google.android.maps.v2.AIzaSyCSzy5IWRWvMUn8xt5I17Z-1l7xtzYM0Js」 機器人:值= 「AIzaSyCSzy5IWRWvMUn8xt5I17Z-1l7xtzYM0Js」/ > – user3193538

+0

檢查我編輯的答案 –