95

我正在尝试使用新的 Android Studio 测试 Google Play 服务。我有一个依赖于 google_play_services.jar 的项目。但是当我尝试重建项目时,出现以下错误:

Information:[TstGP3-TstGP3] Crunching PNG Files in source dir: C:\Users\ans\AndroidStudioProjects\TstGP3\TstGP3\src\main\res
Information:[TstGP3-TstGP3] To destination dir: C:\Users\ans\AndroidStudioProjects\TstGP3\build\classes\res-cache\TstGP3-TstGP3
Information:Compilation completed with 2 errors and 0 warnings in 2 sec
Information:2 errors
Information:0 warnings
C:\Users\ans\.AndroidStudioPreview\system\compiler\tstgp3.3f17bd41\.generated\Android_BuildConfig_Generator\TstGP3-TstGP3.74fc5b25\production\com\example\tstgp3\BuildConfig.java
    Error:Error:line (4)error: duplicate class: com.example.tstgp3.BuildConfig
C:\Users\ans\.AndroidStudioPreview\system\compiler\tstgp3.3f17bd41\.generated\aapt\TstGP3-TstGP3.74fc5b25\production\com\example\tstgp3\R.java
    Error:Error:line (10)error: duplicate class: com.example.tstgp3.R

它似乎有两个 BuildConfig 文件和两个 R 类。我该如何解决这个问题?

编辑:

我注意到编译器编译了两个 R.java 文件:一个位于我的项目文件夹中,另一个位于文件夹 %USERPROFILE%.AndroidStudioPreview 所以,我试图在编译器设置中排除这个“预览”文件夹现在它正在工作。此问题仅在我开始在我的项目中使用 Google Play 服务类之后才会出现。如果有人能解释这个问题背后的原因,我将不胜感激。

4

11 回答 11

244

所有这些答案都是错误的,因为 gradle plugin v0.4.2 的发布在 android studio 下设置 google play 服务是直截了当的。您无需导入任何 jar 或添加任何项目库,也无需在 android studio 下添加任何新模块。您要做的就是将正确的依赖项添加到 build.gradle 文件中。请查看这些链接:Gradle plugin v0.4.2 updateNew Build Systemthis sample

这样做的正确方法如下:

首先,您必须启动 sdk 管理器并下载并安装位于“附加”下的以下文件:Android 支持存储库谷歌播放服务谷歌存储库

重启 android studio 并打开 build gradle 文件。您必须修改 build.gradle 文件,使其在依赖项下如下所示:

dependencies {
    compile 'com.google.android.gms:play-services:6.5.87' 
 }

最后同步您的项目(AVD 管理器左侧的按钮)。

从 6.5 版开始,您可以包含完整的库(非常大)或仅包含您需要的模块(最佳选项)。即,如果您只需要 Google Maps and Analytics,您可以将前面的示例替换为以下示例:

dependencies {  
    compile 'com.google.android.gms:play-services-base:6.5.87'    
    compile 'com.google.android.gms:play-services-maps:6.5.87'  
}

您可以在此处找到完整的依赖项列表

一些旁注:

  • 使用最新的播放服务库版本。如果是旧版本,android studio 会高亮显示。截至今天(2 月 5 日是 6.5.87),但您可以在Gradle 请查看最新版本
  • 对 Android Studio 进行重大更新后,按照@user123321 评论中建议的后续说明清理重建项目

    cd 到你的项目文件夹
    ./gradlew clean
    ./gradlew build

于 2013-06-21T20:01:41.677 回答
116
  1. 转到文件-> 项目结构
  2. 选择“项目设置”
  3. 选择“依赖项”选项卡
  4. 单击“+”并选择“1.Library Dependencies”
  5. 搜索:com.google.android.gms:play-services
  6. 选择最新版本并单击“确定”

瞧!无需与 Gradle 斗争 :)

于 2014-03-13T10:55:07.240 回答
5

编辑:这家伙真的把它带回家了,并且有一个很好的小教程 http://instantiatorgratification.blogspot.com/2013/05/google-play-services-with-android-studio.html

一个旁注:我玩了这么多,我需要做一个gradlew clean让它成功运行

如果您已导入项目或正在使用位于 \extras\google\google_play_services\samples\maps 的 Sample Maps 应用程序,请查看本教程。

https://stackoverflow.com/a/16598478/2414698

如果您从头开始创建一个新项目,请注意 Xav 对同一帖子的评论。他描述了 Android Studio 使用不同的编译器,并且您必须手动修改 build.gradle 文件。我成功地做到了这一点。我复制了

  • google-play-services.jar
  • google-play-services.jar.properties

进入我的 lib 目录并将以下内容添加到我的 build.gradle 文件中

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

另外,如果这是一个项目,也请查看这篇文章。

https://stackoverflow.com/a/16671865/2414698

于 2013-05-23T17:48:38.570 回答
4

这些答案中的大多数仅解决编译时依赖关系,但您会在运行时发现大量 NoClassDef 异常。那是因为您需要的不仅仅是 google-play-services.jar。它引用了作为库项目一部分的资源,如果您只有 jar,这些资源将不正确包含。

对我来说最有效的是首先在 Eclipse 中正确设置项目。将您的项目结构化,使其包含您的应用程序和库,如下所述:http ://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Multi-project-setup

然后从 Eclipse 中导出您的应用项目,并按照此处所述导入 Android Studio:http: //developer.android.com/sdk/installing/migrate.html。确保同时导出您的应用项目和 Google Play 服务库项目。导入时它将检测库项目并将其作为模块导入。我刚刚在项目导入过程中接受了所有默认值。

于 2013-05-27T16:39:26.517 回答
2

Android Studio 中的 Google Play 服务集成。

第1步:

SDK manager->Tools Update this

1.Google play services
2.Android Support Repository

第2步:

chance in build.gradle 
defaultConfig {
        minSdkVersion 8
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.google.android.gms:play-services:4.0.+'
}

第 3 步:

 android.manifest.xml
<uses-sdk
        android:minSdkVersion="8" />

第4步:

Sync project file with grandle.
wait for few minute.

第 5 步:

File->Project Structure find error with red bulb images,click on go to add dependencies select your app module.
Save

如果您需要帮助,请发表评论。快乐编码。

于 2014-01-22T09:50:24.000 回答
2

上述解决方案都不适合我。不确定它是否特定于我的设置或新版本。

我正在使用 Android Studio Beta 0.8.9 并且按照以下说明在库列表中没有得到任何 com.google.android.gms:play-service :

转到文件 -> 项目结构 -> 选择项目设置 -> 选择“依赖项”选项卡单击“+” -> 1.Library 依赖项 -> 选择 com.google.android.gms:play-services:+

我已经这样做了:

首先,您必须启动 sdk 管理器并下载并安装位于“附加”下的以下文件:Android 支持存储库、Google Play 服务、Google 存储库。

解决的方法是从 SDK Manager 添加“Froyo 的 Google Play 服务”,然后重复第一步。

没有正确理解原因,但这有效。

PS:我刚刚观察到,即使现在我搜索播放服务时也不会出现,但是当我直接滚动并查看列表时,它就在那里。

于 2014-10-13T02:16:37.330 回答
2

按照这篇文章-> http://developer.android.com/google/play-services/setup.html

您应该选择使用 Android Studio

在此处输入图像描述

示例 Gradle 文件:

注意:打开应用程序模块目录中的 build.gradle 文件。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 20
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "{applicationId}"
        minSdkVersion 14
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:20.+'
    compile 'com.google.android.gms:play-services:6.1.+'
}

您可以在此处找到最新版本的 Google Play 服务:https ://developer.android.com/google/play-services/index.html

于 2014-11-24T16:09:25.220 回答
1

在执行以下操作后,我已经完成了这项工作:

  • 将 google-play-services-lib 作为一个模块(注意模块和项目之间的区别),然后将 google-play-services.jar 添加到您的模型“libs”目录中。
  • 之后,通过制作一个库将 jar 添加到您的构建路径或将 jar 添加到另一个库。我通常有一个 IDEA 库,我将所有 /libs/*.jar 文件添加到其中。
  • 通过模块设置 (F4) 将库添加到您的模块构建路径。
  • 将 google-play-services-lib 作为模块依赖项添加到您的项目中。
  • 完毕!

注意:这也不会给我运行时异常,它可以工作。

于 2013-06-02T11:18:34.283 回答
0

打开您的项目build.gradle文件并在依赖项模块下添加以下行。

dependencies {
    compile 'com.google.android.gms:play-services:7.0.0'
}

如果您不想集成完整的库,下面将添加Google AnalyticsMaps

dependencies {
    compile 'com.google.android.gms:play-services-analytics:7.0.0'
    compile 'com.google.android.gms:play-services-maps:7.0.0'
}
于 2015-11-22T11:27:26.283 回答
0

在我的情况下,google-play-services_lib在我的项目中集成为Google 地图和 GCM的模块(外部库) 。

现在,这些时间需要实现Google Places Autocomplete API,但问题是代码是新的,我的库是旧的,所以找不到一些类:

按照这些步骤...

1>将Google play 服务更新到 SDK Manager

2> 选择 google play 服务的新 .jar 文件 ( Sdk/extras/google/google_play_services/libproject/google-play-services_lib/libs ) 替换为旧的

我成功了……!!!

于 2015-12-28T13:40:16.953 回答
-3

我将播放库文件从 google-play-services_lib 复制到我的项目库目录:

  • google-play-services.jar
  • 谷歌播放服务.jar.properties。

然后选择它们,右键单击“添加为库”。

于 2013-05-18T15:53:14.667 回答