谷歌地图V2与android无法正常工作?

大家好,我是android的新手,我试图将谷歌地图V2与我的Android应用程序连接。 为此,我按照本教程和这个教程 ,但每当我尝试午餐我的应用程序显示以下错误。

在此处输入图像描述

我的MainActivity.java

package com.example.map; import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.app.Activity; import android.app.FragmentManager; import android.os.Build; import android.os.Bundle; import android.view.Menu; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.MapFragment; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Marker; import com.google.android.gms.maps.model.MarkerOptions; import com.google.android.gms.maps.SupportMapFragment; @SuppressLint("NewApi") public class MainActivity extends Activity { static final LatLng HAMBURG = new LatLng(53.558, 9.927); static final LatLng KIEL = new LatLng(53.551, 9.993); private GoogleMap map; @TargetApi(Build.VERSION_CODES.HONEYCOMB) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FragmentManager fragmentManager = getFragmentManager(); MapFragment mapFragment = (MapFragment) fragmentManager.findFragmentById(R.id.map); map = mapFragment.getMap(); //map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 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))); // Move the camera instantly to hamburg with a zoom of 15. map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15)); // Zoom in, animating the camera. map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } } 

我的activity_main.xml

    

我的AndroidManifest.xml

                      

我的locgcat

 09-05 08:09:55.435: E/AndroidRuntime(490): FATAL EXCEPTION: main 09-05 08:09:55.435: E/AndroidRuntime(490): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.map/com.example.map.MainActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class fragment 09-05 08:09:55.435: E/AndroidRuntime(490): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.os.Handler.dispatchMessage(Handler.java:99) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.os.Looper.loop(Looper.java:123) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.app.ActivityThread.main(ActivityThread.java:4627) 09-05 08:09:55.435: E/AndroidRuntime(490): at java.lang.reflect.Method.invokeNative(Native Method) 09-05 08:09:55.435: E/AndroidRuntime(490): at java.lang.reflect.Method.invoke(Method.java:521) 09-05 08:09:55.435: E/AndroidRuntime(490): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 09-05 08:09:55.435: E/AndroidRuntime(490): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 09-05 08:09:55.435: E/AndroidRuntime(490): at dalvik.system.NativeStart.main(Native Method) 09-05 08:09:55.435: E/AndroidRuntime(490): Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class fragment 09-05 08:09:55.435: E/AndroidRuntime(490): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.view.LayoutInflater.inflate(LayoutInflater.java:407) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 09-05 08:09:55.435: E/AndroidRuntime(490): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.app.Activity.setContentView(Activity.java:1647) 09-05 08:09:55.435: E/AndroidRuntime(490): at com.example.map.MainActivity.onCreate(MainActivity.java:31) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-05 08:09:55.435: E/AndroidRuntime(490): ... 11 more 09-05 08:09:55.435: E/AndroidRuntime(490): Caused by: java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClassLoader[/data/app/com.example.map-2.apk] 09-05 08:09:55.435: E/AndroidRuntime(490): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 09-05 08:09:55.435: E/AndroidRuntime(490): at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 09-05 08:09:55.435: E/AndroidRuntime(490): at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.view.LayoutInflater.createView(LayoutInflater.java:466) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:544) 09-05 08:09:55.435: E/AndroidRuntime(490): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66) 09-05 08:09:55.435: E/AndroidRuntime(490): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563) 09-05 08:09:55.435: E/AndroidRuntime(490): ... 20 more 

我的代码有什么问题?

你的min sdk是8

 android:minSdkVersion="8" 

您的课程必须扩展FragmentActivty

使用SupportMapFragment而不是MapFragment

 SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); GoogleMap mMap = fm.getMap(); 

也导入

 import android.support.v4.app.FragmentActivity; import com.google.android.gms.maps.SupportMapFragment; 

编辑:

你的包裹名称是

 package="com.example.map" 

所以改成它

  

   

使用设备来运行您的应用程序而不是模拟器

试试这个,我希望这会对你有所帮助

 package com.example.maptest; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.MapFragment; import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.Marker; import com.google.android.gms.maps.model.MarkerOptions; public class MainActivity extends Activity { static final LatLng HAMBURG = new LatLng(53.558, 9.927); static final LatLng KIEL = new LatLng(53.551, 9.993); private GoogleMap map; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); map = ((MapFragment) getFragmentManager().findFragmentById(R.id.fragment1)) .getMap(); 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))); // Move the camera instantly to hamburg with a zoom of 15. map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15)); // Zoom in, animating the camera. map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 
 public class MainActivity extends FragmentActivity { static final LatLng HAMBURG = new LatLng(53.558, 9.927); static final LatLng KIEL = new LatLng(53.551, 9.993); private GoogleMap map; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager(); SupportMapFragment mapFragment = (SupportMapFragment) fragmentManager.findFragmentById(R.id.map); map = mapFragment.getMap(); 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))); // Move the camera instantly to hamburg with a zoom of 15. map.moveCamera(CameraUpdateFactory.newLatLngZoom(HAMBURG, 15)); // Zoom in, animating the camera. map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null); } 

}

更改清单文件中的行

   

而不是标记两行使用

    
 // xml  // Activity FragmentManager fm = getSupportFragmentManager(); SupportMapFragment f = (SupportMapFragment) fm.findFragmentById(R.id.maps); map = f.getExtendedMap();