web-dev-qa-db-ja.com

Google Maps Api v2を使用するAndroidアプリケーションをAndroid Studioで作成するにはどうすればよいですか?

Android StudioでGoogleMapを使用してアプリを作成しようとすると、多くの問題が発生します。

IDEとしてEclipseを使用する際に(ほとんど)問題なく、次のガイドに従いました:

https://developers.google.com/maps/documentation/Android/start

以前にAndroid Studioを使用したことがないので、プロジェクト/モジュールパラダイム全体に問題があります。

Google Play Services SDKを正常に構成できませんでした http://developer.Android.com/google/play-services/setup.html

ここに私が得ている奇妙なエラーの1つがあります:

 Gradle:
 FAILURE:ビルドは例外で失敗しました。
 
 *問題点:
タスク ':MyMapApp:compileDebug'の実行に失敗しました。
>コンパイルに失敗しました。詳細については、コンパイラエラー出力を参照してください。
 
 * Try:
スタックトレースを取得するには、-stacktraceオプションを指定して実行します。より多くのログ出力を取得するには、-infoまたは--debugオプションを使用して実行します。
40
whoabackoff

最後に、Android Studio。を使用してGoogleMapsAPIv2プロジェクトを実行することができました。

編集:Xavierが述べたように、このメソッドは非gradleベースのプロジェクトでのみ機能します。このチュートリアルで使用されたUIパーツはAndroidStudioから除外されます。したがって、Gradleを使用する独自のプロジェクトがある場合ビルドシステムでは、Android Studio UIは影響しません。

EDIT2:AndroidStudio v0.1.1リリースでは、モジュールの依存関係を担当するUI部分が削除されたため、今のところbuild.gradleファイルを使用して依存関係を手動で更新する必要があります。リリース

EDIT3:まだこのアプローチを使用しようとする人のために-それは時代遅れであり、もう機能しないことに注意してください

ここに私がやったことがあります:

1)Google Play Servicesサンプルからmapsプロジェクトを取得し、別のディレクトリにコピーしました。これが、実行しようとしているMapsApiV2プロジェクトになります。私のMacでは、<sdk_location>/extras/google/google_play_services/samplesにありました。~/Work/stack/に配置しました

2)google-play-services_libプロジェクトディレクトリを同じ場所(~/Work/stack)にコピーしたため、作業ディレクトリは次のようになります。ところで、libプロジェクトは<sdk_location>/extras/google/google_play_services/libprojectにあります: enter image description here

3)では、Android Studio。ようこそ画面でImport Projectを押してmapsプロジェクトを~/Work/stack/mapsからインポートします。多くの苦情が表示されます。 GMSライブラリへの不明な参照について:

enter image description here

4)次に、参照ライブラリとしてGoogle Play Serviceを追加する必要があります。 View -> Open Module Settingsに移動

5)[Modules]タブで、[+]ボタンをクリックし、Import Moduleを選択して、GooglePlayServicesライブラリをインポートします。ウィザードでは何も変更しなかったので、最後までNextをクリックしました。

enter image description here

6)次に、このインポートされたライブラリを参照する必要があります。この画面をもう一度開きます(View -> Module Settingsに移動します)。 mapsプロジェクトとDependencyタブが選択されていることを確認してください。 +をクリックして依存関係を追加し、Libraryを選択します。インポートしたライブラリを選択します:

enter image description here

7)これで、GMSライブラリについては文句を言っていませんが、サポートライブラリについては文句を言っていることがわかります。

enter image description here

8)修正しましょう。サポートライブラリは<sdk location>/extras/Android/support/v13/Android-support-v13.jarにあります。それをワークスペースに追加してみましょう。 View -> Open Module Settingsに移動し、Librariesタブを選択します。 +-> Javaを選択し、サポートライブラリを選択します。

enter image description here

9)次に、このプロジェクトを追加するプロジェクトを尋ねるので、mapsプロジェクトを選択したことを確認してください。

enter image description here

10)この時点で、コードはw/o問題をコンパイルするはずです。マニフェストで正しいSDKバージョンをターゲットにしていることを確認してください。

楽しんで

54
Pavel Dudka

私は新しいプロジェクトを作成していたことを除いて、同じ指示に従っていました。プロジェクト構造の下で、Android-Gradleファセットを削除し、正常にビルドすることができました。必要に応じて、gradleビルドファイルを更新し、Android-Gradleファセットをプレイサービスライブラリに追加できます。

注:Google Play Servicesディレクトリの名前を変更しました。

build.gradle Google Play Servicesライブラリ用。

apply plugin: 'Android-library'

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.Android.tools.build:gradle:0.4'
    }
}

dependencies {
    compile files('libs/Android-support-v4.jar')
    compile files('google-play-services.jar')
}

Android {
    compileSdkVersion 17
    buildToolsVersion '17.0.0'

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            Java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aild.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}

build.gradleテストアプリ用。

buildscript {
    repositories {
        maven { url 'http://repo1.maven.org/maven2' }
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.4'
    }
}
apply plugin: 'Android'

dependencies {
    compile files('libs/Android-support-v4.jar')
    compile project(':lib-google-play-services')
    compile files('../lib-google-play-services/libs/google-play-services.jar')
}

Android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 16
    }
}
13
Frohnzie

私はこれに関する多くのチュートリアルを試しましたが失敗しましたが、最終的にAndroid Studio and gradle

ちょうどMacにAndroid Studio 0.2.3をインストールしました。これらは、新しいHello Worldプロジェクトテンプレートでマップフラグメントを表示する手順です。

1)Android Studio。]のツールバーの[SDKマネージャー]ボタンをクリックします。

2)[追加]で[Googleプレイサービス]を見つけてダウンロードします。

3)srcディレクトリのbuild.gradleファイルで、次の行を依存関係に追加します。

compile 'com.google.Android.gms:play-services:3.1.36'

4)このチュートリアルに従ってAPIキーを注文してインストールします。 https://developers.google.com/maps/documentation/Android/start#the_google_maps_api_key

5)フラグメントをレイアウトxmlに追加します。

<fragment xmlns:Android="http://schemas.Android.com/apk/res/Android"
          Android:id="@+id/map"
          Android:layout_width="match_parent"
          Android:layout_height="match_parent"
          Android:name="com.google.Android.gms.maps.MapFragment"/>

6)これで、デバイスでプロジェクトを実行できるようになります。

9
monopoint

Google Maps API V2Android Studio 0.2を使用するgradle 0.5.+.を使用する、私が作成したプロジェクトの構成は次のとおりです。ActiobarSherlockなどの他のモジュール、およびカスタムNumberPicker 、そして誰かがそれらを必要とする場合に備えて、それらを残すだけです。

プロジェクト構造:

enter image description here

1)TOP Directory settings.gradle:

include ':SuperModule', ':libraries:actionbarsherlock', ':libraries:numberPicker'

2)TOPディレクトリbuild.gradle

task assemble {}

(一部の人は、見つからないタスクのアセンブルに直面するかもしれません。それがこの行を置く理由です!)

)SuperModule build.gradle

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'Android'

dependencies {
    compile 'com.google.Android.gms:play-services:3.1.36'
    compile 'com.Android.support:gridlayout-v7:13.0.0'
    compile project(':libraries:actionbarsherlock')
    compile project(':libraries:numberPicker')
}

Android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 16
    }
}

ここで依存関係に注意してください。 actiobarSherlock(ABS)、およびAndroid Libraries。として使用されるNumberPicker。 )サポートライブラリはABSライブラリに含まれているため、ここには含まれていません!

Actionbar Sherlock build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.Android.tools.build:gradle:0.5.+'
    }
}
apply plugin: 'Android-library'

dependencies {
    compile 'com.Android.support:support-v4:13.0.0'
}

Android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            Java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('tests')
    }
}

NumberPicker build.gradleは、他と同じロジックを持っているため表示されません。

3
Paschalis

記事を書き、Locationインターフェイスとgoogle map apiの両方を使用して地図アプリケーションを作成する手順を説明しました。これは、マップアプリケーションを起動して実行しようとしているときに遭遇した多くのイディオシンクラシーを通過します。これには、含めるSDK、インポートするライブラリ、Android= gradleファイルを変更する方法。これが役立つことを願っています

http://www.todroid.com/how-to-create-a-google-map-application-using-Android-studio/

2
mike gold

私も同様の問題を抱えていました。モジュールのようなGoogle Play Servicesプロジェクトの代わりに、ライブラリのようなgoogle_play_services.jarのインポートを解決しました。

1
encastellano

私も同様の問題を抱えていましたが、com.google.Android.gms.mapsパッケージが見つからなかったというだけでした(存在しないと言い続けていました)。これは、Googleのドキュメントの移行チュートリアルに従ってすべてを(一見)適切にインポートした後です。 http://developer.Android.com/sdk/installing/migrate.html

とにかく、すべてをインポートした後、私はまだ問題があり、ビルドパス(またはEclipse以外の同等物)の設定方法がわかりませんでした。

以下のチュートリアルの半分に従い、モジュール設定ウィンドウに既にリストされているgoogle-play-servicesライブラリを削除してから、再度追加する必要がありました。

これが他の誰かに役立つことを願っています。

1
BroFist