Android Google Maps V2和旧SDK目标

Android Google Maps V2和旧SDK目标,android,android-fragments,Android,Android Fragments,我一直在尝试将谷歌地图集成到Android应用程序中。我是Android noob,对如何正确实现这一点感到困惑。我的第一个问题是,使用基于API 4.0的模拟器,我成功地完成了概述的设置,但在运行时,它显示没有仅地图的地图控件。然后我发现在emulator上调试Google Maps V2是不可能的。所以我试着在设备上运行它。该设备是带有Android 2.3.5的HTC。当我上传到手机上进行测试时,该应用程序不断崩溃。然后我发现那个家伙使用: class="com.google.androi

我一直在尝试将谷歌地图集成到Android应用程序中。我是Android noob,对如何正确实现这一点感到困惑。我的第一个问题是,使用基于API 4.0的模拟器,我成功地完成了概述的设置,但在运行时,它显示没有仅地图的地图控件。然后我发现在emulator上调试Google Maps V2是不可能的。所以我试着在设备上运行它。该设备是带有Android 2.3.5的HTC。当我上传到手机上进行测试时,该应用程序不断崩溃。然后我发现那个家伙使用:

class="com.google.android.gms.maps.SupportMapFragment"
在节点中,而不是此节点中:

android:name="com.google.android.gms.maps.MapFragment" //from Google maps setup webpage
有人能解释一下原因吗?我还发现我不得不将我的activity super类从activity替换为FragmentActivity,这在Google的文档中也没有涉及

另一件事:选择要调试的设备时,我会看到HTC手机的警告图标(见下文)

警告是什么意思

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example.helloworld"
       android:versionCode="1"
        android:versionName="1.0" >

   <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="19" />
   <uses-feature
       android:glEsVersion="0x00020000"
       android:required="true"/>
  <permission
     android:name="com.example.helloworld.permission.MAPS_RECEIVE"
     android:protectionLevel="signature"/>
   <uses-permission  android:name="com.example.helloworld.permission.MAPS_RECEIVE"/>
   <uses-permission android:name="android.permission.INTERNET"/>
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
   <uses-permission      android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

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

    <activity
        android:name="com.example.helloworld.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
       </activity>
   </application>

</manifest>

)

12-0219:27:55.345:E/AndroidRuntime(11590):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849) 12-0219:27:55.345:E/AndroidRuntime(11590):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)12-02 19:27:55.345:E/AndroidRuntime(11590):在 dalvik.system.NativeStart.main(本机方法)12-02 19:27:55.345: E/AndroidRuntime(11590):由以下原因引起:android.view.InflateException: 二进制XML文件行#3:膨胀类片段12-02时出错 19:27:55.345:E/AndroidRuntime(11590):在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581) 12-0219:27:55.345:E/AndroidRuntime(11590):在 膨胀(LayoutInflater.java:386)12-02 19:27:55.345:E/AndroidRuntime(11590):在 膨胀(LayoutInflater.java:320)12-02 19:27:55.345:E/AndroidRuntime(11590):在 膨胀(LayoutInflater.java:276)12-02 19:27:55.345:E/AndroidRuntime(11590):在 com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:250) 12-0219:27:55.345:E/AndroidRuntime(11590):在 android.app.Activity.setContentView(Activity.java:1742)12-02 19:27:55.345:E/AndroidRuntime(11590):在 com.example.helloworld.MainActivity.onCreate(MainActivity.java:15) 12-0219:27:55.345:E/AndroidRuntime(11590):在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072) 12-0219:27:55.345:E/AndroidRuntime(11590):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1836) 12-0219:27:55.345:E/AndroidRuntime(11590):。。。11更多12-02 19:27:55.345:E/AndroidRuntime(11590):由以下原因引起: java.lang.ClassNotFoundException:加载程序中的android.view.fragment dalvik.system.PathClassLoader[/data/app/com.example.helloworld-2.apk] 12-0219:27:55.345:E/AndroidRuntime(11590):在 dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240) 12-0219:27:55.345:E/AndroidRuntime(11590):在 loadClass(ClassLoader.java:551)12-02 19:27:55.345:E/AndroidRuntime(11590):在 loadClass(ClassLoader.java:511)12-02 19:27:55.345:E/AndroidRuntime(11590):在 createView(LayoutInflater.java:471)12-02 19:27:55.345:E/AndroidRuntime(11590):在 onCreateView(LayoutInflater.java:549) 12-0219:27:55.345:E/AndroidRuntime(11590):在 com.android.internal.policy.impl.PhoneLayoutFlater.onCreateView(PhoneLayoutFlater.java:66) 12-0219:27:55.345:E/AndroidRuntime(11590):在 createViewFromTag(LayoutInflater.java:568) 12-0219:27:55.345:E/AndroidRuntime(11590):。。。还有19个


堆栈跟踪在崩溃时说了什么?你得到这个警告是因为在你的清单中,你没有被支持的android版本,比如你的min SDK是14(android 4.0)不,我有。最小版本设置为10,即2.3.5。当它崩溃时,调试器显示“未找到源代码”,现在它工作正常。如果我以“原始”方式运行,它就会崩溃。。。。