我尝试在Android上编写一个简单的地图应用程序,但唯一的结果是错误.我试图以它应该的方式编程,但它仍然无法正常工作.
主要活动
package com.example.guidebook; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class GuidebookActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.guidebook); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.guidebook, menu); return true; } }
.XML
表现
我是这方面的新手,因此要求提供详细的帮助.
Log: 12-09 10:35:44.200: D/AndroidRuntime(24663): Shutting down VM 12-09 10:35:44.200: W/dalvikvm(24663): threadid=1: thread exiting with uncaught exception (group=0x415d5ba8) 12-09 10:35:44.200: E/AndroidRuntime(24663): FATAL EXCEPTION: main 12-09 10:35:44.200: E/AndroidRuntime(24663): Process: com.example.guidebook, PID: 24663 12-09 10:35:44.200: E/AndroidRuntime(24663): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.guidebook/com.example.guidebook.GuidebookActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.app.ActivityThread.access$800(ActivityThread.java:135) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.os.Handler.dispatchMessage(Handler.java:102) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.os.Looper.loop(Looper.java:136) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.app.ActivityThread.main(ActivityThread.java:5017) 12-09 10:35:44.200: E/AndroidRuntime(24663): at java.lang.reflect.Method.invokeNative(Native Method) 12-09 10:35:44.200: E/AndroidRuntime(24663): at java.lang.reflect.Method.invoke(Method.java:515) 12-09 10:35:44.200: E/AndroidRuntime(24663): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 12-09 10:35:44.200: E/AndroidRuntime(24663): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 12-09 10:35:44.200: E/AndroidRuntime(24663): at dalvik.system.NativeStart.main(Native Method) 12-09 10:35:44.200: E/AndroidRuntime(24663): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 12-09 10:35:44.200: E/AndroidRuntime(24663): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.app.Activity.setContentView(Activity.java:1929) 12-09 10:35:44.200: E/AndroidRuntime(24663): at com.example.guidebook.GuidebookActivity.onCreate(GuidebookActivity.java:12) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.app.Activity.performCreate(Activity.java:5231) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 12-09 10:35:44.200: E/AndroidRuntime(24663): ... 11 more 12-09 10:35:44.200: E/AndroidRuntime(24663): Caused by: android.app.Fragment$InstantiationException: Trying to instantiate a class com.google.android.gms.maps.SupportMapFragment that is not a Fragment 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.app.Fragment.instantiate(Fragment.java:585) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.app.Fragment.instantiate(Fragment.java:561) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.app.Activity.onCreateView(Activity.java:4778) 12-09 10:35:44.200: E/AndroidRuntime(24663): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689) 12-09 10:35:44.200: E/AndroidRuntime(24663): ... 20 more 12-09 10:35:44.200: E/AndroidRuntime(24663): Caused by: java.lang.ClassCastException 12-09 10:35:44.200: E/AndroidRuntime(24663): ... 24 more 12-09 10:36:10.520: D/AndroidRuntime(24870): Shutting down VM 12-09 10:36:10.520: W/dalvikvm(24870): threadid=1: thread exiting with uncaught exception (group=0x415d5ba8) 12-09 10:36:10.520: E/AndroidRuntime(24870): FATAL EXCEPTION: main 12-09 10:36:10.520: E/AndroidRuntime(24870): Process: com.example.guidebook, PID: 24870 12-09 10:36:10.520: E/AndroidRuntime(24870): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.guidebook/com.example.guidebook.GuidebookActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.app.ActivityThread.access$800(ActivityThread.java:135) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.os.Handler.dispatchMessage(Handler.java:102) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.os.Looper.loop(Looper.java:136) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.app.ActivityThread.main(ActivityThread.java:5017) 12-09 10:36:10.520: E/AndroidRuntime(24870): at java.lang.reflect.Method.invokeNative(Native Method) 12-09 10:36:10.520: E/AndroidRuntime(24870): at java.lang.reflect.Method.invoke(Method.java:515) 12-09 10:36:10.520: E/AndroidRuntime(24870): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 12-09 10:36:10.520: E/AndroidRuntime(24870): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 12-09 10:36:10.520: E/AndroidRuntime(24870): at dalvik.system.NativeStart.main(Native Method) 12-09 10:36:10.520: E/AndroidRuntime(24870): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.view.LayoutInflater.inflate(LayoutInflater.java:353) 12-09 10:36:10.520: E/AndroidRuntime(24870): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.app.Activity.setContentView(Activity.java:1929) 12-09 10:36:10.520: E/AndroidRuntime(24870): at com.example.guidebook.GuidebookActivity.onCreate(GuidebookActivity.java:12) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.app.Activity.performCreate(Activity.java:5231) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 12-09 10:36:10.520: E/AndroidRuntime(24870): ... 11 more 12-09 10:36:10.520: E/AndroidRuntime(24870): Caused by: java.lang.NullPointerException: name == null 12-09 10:36:10.520: E/AndroidRuntime(24870): at java.lang.VMClassLoader.findLoadedClass(Native Method) 12-09 10:36:10.520: E/AndroidRuntime(24870): at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:350) 12-09 10:36:10.520: E/AndroidRuntime(24870): at java.lang.ClassLoader.loadClass(ClassLoader.java:487) 12-09 10:36:10.520: E/AndroidRuntime(24870): at java.lang.ClassLoader.loadClass(ClassLoader.java:457) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.app.Fragment.instantiate(Fragment.java:583) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.app.Fragment.instantiate(Fragment.java:561) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.app.Activity.onCreateView(Activity.java:4778) 12-09 10:36:10.520: E/AndroidRuntime(24870): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689) 12-09 10:36:10.520: E/AndroidRuntime(24870): ... 20 more 12-09 10:36:12.420: I/Process(24870): Sending signal. PID: 24870 SIG: 9
Siddharth_Vy.. 5
检查我的答案如下:
在你的xml文件中改变它 class="com.google.android.gms.maps.MapFragment" to android:name="com.google.android.gms.maps.SupportMapFragment"
将您的活动扩展到FragmentActivty并进行更改
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)) .getMap(); to map= ((SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map)).getMap();
还检查一下 if (map== null) { map= ((SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map)).getMap();}
检查清单文件:
希望这可以帮助.