将Google地图添加到我的应用中

时间:2013-01-23 22:37:58

标签: android

我正在尝试将谷歌地图添加到我的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已停止。”

有人看到了什么问题吗?

1 个答案:

答案 0 :(得分:1)

也许您正在尝试在未运行Android 3.0+的设备上使用MapFragmentMapFragment用于Activity,API级别11的本机片段实现。SupportMapFragment用于FragmentActivity和Android支持库提供的片段反向端口


<强>更新

经过进一步审查,问题可能是双重的:

  1. 您试图将google-play-services.jar附加到项目中,而不是following the instructions and attaching the Play Services Android library project to your project

  2. 您通过直接搞乱您的构建路径而不是将JAR复制到libs/来做上面的#1。

  3. 撤消您最初的所作所为。然后,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/googl‌​e-play-services_lib
    

    创建必要的文件。