Android Google Maps V2和旧SDK目标
我一直在尝试将谷歌地图集成到Android应用程序中。我是Android noob,对如何正确实现这一点感到困惑。我的第一个问题是,使用基于API 4.0的模拟器,我成功地完成了概述的设置,但在运行时,它显示没有仅地图的地图控件。然后我发现在emulator上调试Google Maps V2是不可能的。所以我试着在设备上运行它。该设备是带有Android 2.3.5的HTC。当我上传到手机上进行测试时,该应用程序不断崩溃。然后我发现那个家伙使用: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
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。当它崩溃时,调试器显示“未找到源代码”,现在它工作正常。如果我以“原始”方式运行,它就会崩溃。。。。