如何在Android Studio中使用Google Maps Api v2创建Android应用程序?

who*_*off 41 android google-maps google-play-services android-studio

尝试使用GoogleMap创建应用时,我在Android Studio中遇到了很多麻烦.

之前我已经按照以下指南(几乎)没有使用Eclipse作为我的IDE的问题:

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

我之前从未使用过Android Studio,而且整个项目/模块范例都遇到了困难.

我无法成功配置Google Play服务SDK http://developer.android.com/google/play-services/setup.html

这是我得到的一个奇怪的错误:

Gradle: 
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':MyMapApp:compileDebug'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

Pav*_*dka 55

最后,我设法使用Android Studio运行GoogleMapsAPIv2项目.

编辑:正如Xavier所提到的,这种方法仅适用于基于非gradle的项目.本教程中使用的UI部分将从AndroidStudio中排除.因此,如果您有自己的项目使用Gradle构建系统,则需要手动修改build.gradle配置文件,因为Android Studio UI不会影响它.

EDIT2:在AndroidStudio v0.1.1版本中,已经消除了负责模块依赖性的UI部分,因此现在我们需要通过build.gradle文件手动更新依赖项.用于更改gradle依赖关系的UI将在下一版本中发布

编辑3:对于仍然尝试使用这种方法的人 - 请注意它已经过时,不再起作用了

这是我做的:

1)我maps从Google Play Services示例中获取了项目并将其复制到单独的目录中.这将是我们将尝试运行的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: 在此输入图像描述

3)现在让我们打开Android Studio.在欢迎屏幕上按下Import Projectmaps从中导入我们的项目~/Work/stack/maps.现在我们看到很多关于未知引用GMS库的抱怨:

在此输入图像描述

4)现在我们需要添加Google Play服务作为参考库.即将View -> Open Module Settings

5)在Modules选项卡上,单击+按钮,然后选择Import Module并导入您的GooglePlayServices库.我没有更改向导中的任何内容,所以一直点击Next到最后:

在此输入图像描述

6)现在您需要引用此导入的库.再次打开此屏幕(转到View -> Module Settings).确保选择了maps项目和Dependency选项卡.单击+以添加依赖项并选择Library.在那里选择导入的库:

在此输入图像描述

7)现在我们可以看到它并没有抱怨GMS图书馆,但仍抱怨支持库:

在此输入图像描述

8)让我们解决它.我的支持库位于<sdk location>/extras/android/support/v13/android-support-v13.jar.所以让我们尝试将它添加到我们的工作区.转到View -> Open Module Settings并选择Libraries选项卡.选择+- > Java并选择支持库:

在此输入图像描述

9)现在它将询问您将此库添加到哪个项目中,因此请确保选择了您的maps项目:

在此输入图像描述

10)此时代码应编译无问题.只需确保您在Manifest中定位正确的SDK版本.

玩得开心

  • 我想指出的是,问题是关于Gradle设置,并且这个答案虽然对纯IntelliJ项目有效,但不会对Gradle项目起作用.解决方案是编辑build.gradle.在UI中编辑模块和模块依赖项不会影响构建期间使用的Gradle设置.事实上,Studio的下一个版本将禁用此UI.如果您不介意,请编辑答案以在顶部添加注释,这不适用于基于Gradle的项目.谢谢. (4认同)
  • 赞成答案.但为什么每个人都使用黑暗主题?育!这伤害了我的眼睛! (3认同)
  • 这很棒!非常感谢.很棒的截图! (2认同)
  • 获取map api密钥超出了范围.您可以参考https://developers.google.com/maps/documentation/android/start#the_google_maps_api_key获取有关如何获取地图api v2密钥的详细信息 (2认同)

Fro*_*zie 13

我正在遵循相同的指示,除了我正在创建一个新项目.在项目结构下,我删除了Android-Gradle facet,并且能够成功构建.可选地,可以更新gradle构建文件并将Android-Gradle构面添加到播放服务库.

注意:我更改了Google Play服务目录的名称.

build.gradle 适用于Google Play服务库.

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']
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 这是真正的答案!只需一次更正:不需要编译文件('../ lib-google-play-services/libs/google-play-services.jar');-)已经通过项目依赖项间接添加. (2认同)
  • 还需要使用库项目的include语句更新settings.gradle. (2认同)

mon*_*int 9

我已经尝试过很多关于此的教程,但最终找到了一个似乎适用于Android Studio和gradle的简单解决方案

我刚刚在我的mac上安装了Android Studio 0.2.3,这些是让我在新的hello world项目模板上查看地图片段的步骤:

1)单击Android Studio工具栏中的SDK管理器按钮.

2)在'Extras'下找到'Google Play服务'并下载它.

3)在src目录的build.gradle文件中,将此行添加到依赖项:

compile 'com.google.android.gms:play-services:3.1.36'
Run Code Online (Sandbox Code Playgroud)

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"/>
Run Code Online (Sandbox Code Playgroud)

6)您现在应该能够在您的设备上运行您的项目.