我正在尝试将谷歌地图添加到我的Android应用程序中,并且我遵循了此文档:https://developers.google.com/maps/documentation/android/start
首先,我的清单文件是否正确?
的Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="where.is.the.action"
android:versionCode="1"
android:versionName="1.0">
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<permission
android:name="where.is.the.action.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="where.is.the.action.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<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:label="@string/app_name" android:icon="@drawable/ic_launcher">
<activity android:name="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>
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxx"/>
</application>
</manifest>
然后是我的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="My Location"
android:onClick="getLocation"
android:layout_weight="0"
/>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment"/>
</LinearLayout>
如果删除fragment
标记,它会正常工作,但是一旦我将其添加回应用关闭并显示:“不幸的是,MainActivity已停止。”
有人看到了什么问题吗?
答案 0 :(得分:1)
也许您正在尝试在未运行Android 3.0+的设备上使用MapFragment
。 MapFragment
用于Activity
,API级别11的本机片段实现。SupportMapFragment
用于FragmentActivity
和Android支持库提供的片段反向端口
<强>更新强>
经过进一步审查,问题可能是双重的:
您试图将google-play-services.jar
附加到项目中,而不是following the instructions and attaching the Play Services Android library project to your project。
您通过直接搞乱您的构建路径而不是将JAR复制到libs/
来做上面的#1。
撤消您最初的所作所为。然后,follow the instructions to attach the Android library project to your project(作为副作用,将为您正确设置JAR)。
由于您似乎正在执行命令行构建,因此您需要为Android库项目创建命令行构建文件,Google选择不发布该文件(grrrrrrrrrrrrrrr)。运行:
android update project -p /home/ryan/android-sdk-linux/extras/google/google_play_services/libproject/google-play-services_lib
创建必要的文件。