带有Google Play服务的Android Studio

时间:2013-05-18 13:32:30

标签: android google-play-services android-studio

我正在尝试使用新的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服务类后,才会出现此问题。 如果有人能解释这个问题背后的原因,我将不胜感激。

11 个答案:

答案 0 :(得分:244)

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

正确的方法如下:

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

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

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

最后同步你的项目(AVD经理左边的按钮)。

从6.5版开始,您可以包含完整的库(非常大)或仅包含您需要的模块(最佳选项)。即如果您只需要Google地图和Google Analytics,则可以使用以下示例替换上一个示例:

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

您可以找到完整的依赖关系列表here

一些旁注:

  • 使用最新的播放服务库版本。如果是旧版本,android studio会突出显示它。截至今天(2月5日为6.5.87),您可以在Gradle Please
  • 查看最新版本
  • 在Android Studio进行重大更新后,按照@ user123321

    中的建议,按照下面的说明清理重建项目

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

答案 1 :(得分:113)

  1. 转到文件 - >项目结构
  2. 选择“项目设置”
  3. 选择“依赖关系”标签
  4. 点击“+”并选择“1.Library Dependencies”
  5. 搜索:com.google.android.gms:play-services
  6. 选择最新版本,然后单击“确定”
  7. 瞧!无需与Gradle战斗:)

答案 2 :(得分:5)

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

一方注意:我玩过这么多,我需要做gradlew clean才能让它成功运行

如果您已导入项目或使用位于\ extras \ google \ google_play_services \ samples \ maps中的示例地图应用程序,请查看本教程。

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

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

  • 谷歌播放-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

答案 3 :(得分:4)

这些答案中的大部分只涉及编译时依赖性,但您会在运行时找到许多NoClassDef异常。那是因为你需要的不仅仅是google-play-services.jar。它引用属于库项目的资源,如果你只有jar,那么这些资源就没有正确包含。<​​/ p>

最适合我的是首先在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服务库项目。导入时,它将检测库项目并将其作为模块导入。我刚刚在项目导入过程中接受了所有默认值。

答案 4 :(得分:2)

Google Play服务在Android工作室中集成。

第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

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

答案 5 :(得分:2)

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

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

  

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

我已经这样做了:

  

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

解决了从SDK Manager添加“为Froyo开发Google Play服务”然后重复第一步的问题。

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

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

答案 6 :(得分:2)

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

您应该选择使用Android Studio

enter image description here

示例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

答案 7 :(得分:1)

执行以下操作后,我的工作正常:

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

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

答案 8 :(得分:0)

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

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

如果您不想整合完整的库

,下面将添加 Google Analytics 地图
dependencies {
    compile 'com.google.android.gms:play-services-analytics:7.0.0'
    compile 'com.google.android.gms:play-services-maps:7.0.0'
}

答案 9 :(得分:0)

在我的情况下, google-play-services_lib 被整合为 Google map&amp;的模块(外部图书馆)。 GCM 在我的项目中。

现在,这些时间需要实施 Google商家信息自动填充API ,但问题是代码是新的,我的库已经过时,因此找不到某些类:

遵循这些步骤......

1&GT;将 Google Play服务更新到SDK Manager

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

我成功了...... !!!

答案 10 :(得分:-3)

我将google-play-services_lib中的play libs文件复制到我的项目libs目录中:

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

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