0

私は自分の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が停止しました」と表示されて閉じます。

誰かが何が悪いのかわかりますか?

4

1 に答える 1

1

おそらくMapFragment、Android3.0以降を実行していないデバイスで使用しようとしています。MapFragmentは、ActivityAPIレベル11のネイティブフラグメント実装で使用するためのものであり、Androidサポートライブラリによって提供されるフラグメントバックポートSupportMapFragmentで使用するためのものです。FragmentActivity


アップデート

さらに検討すると、問題はおそらく2つあります。

  1. 指示に従ってPlayサービスAndroidライブラリプロジェクトをプロジェクトgoogle-play-services.jarにアタッチする代わりに、プロジェクトにアタッチしようとしました。

  2. JARをにコピーする代わりに、ビルドパスを直接操作して、上記の#1を実行しましたlibs/

元々行ったことを元に戻します。次に、指示に従ってAndroidライブラリプロジェクトをプロジェクトにアタッチします(これにより、副作用として、そのJARが適切にセットアップされます)。

コマンドラインビルドを実行しているように見えるため、Googleが出荷しないことを選択したAndroidライブラリプロジェクト(grrrrrrrrrrrrrrr)のコマンドラインビルドファイルを作成する必要があります。走る:

android update project -p /home/ryan/android-sdk-linux/extras/google/google_play_services/libproject/googl‌​e-play-services_lib

必要なファイルを作成します。

于 2013-01-23T23:12:25.247 に答える