首页 文章

带有Google Play服务的Android Studio

提问于
浏览
96

我正在尝试使用新的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类 . 我该如何解决这个问题?

EDIT:

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

11 回答

  • 5

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

    Correct 这样做的方法如下:

    首先,您必须 launch the sdk manager 并下载并安装位于"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 Map 和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清洁
    ./gradlew build

  • 244
    • 转到文件 - >项目结构

    • 选择'Project Settings'

    • 选择'Dependencies'标签

    • 单击'+'并选择'1.Library Dependencies'

    • 搜索:com.google.android.gms:播放服务

    • 选择最新版本,然后单击'OK'

    瞧!无需与Gradle战斗:)

  • 2

    EDITED: This guy really brought it home and has a good little tutorial http://instantiatorgratification.blogspot.com/2013/05/google-play-services-with-android-studio.html

    one side note: I had played around so much that I needed to do a gradlew clean to get it to run succesfully

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

    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')
    }
    

    另外,如果这是一个 new 项目,也可以查看这篇文章 .

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

  • 113

    这些答案中的大部分只涉及编译时依赖性,但在运行时会发现许多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服务库项目 . 导入时,它将检测库项目并将其作为模块导入 . 我刚刚在项目导入过程中接受了所有默认值 .

  • 0

    Google Play services Integration in Android studio.

    Step 1:

    SDK manager->Tools Update this
    
    1.Google play services
    2.Android Support Repository
    

    Step 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.+'
    }
    

    Step 3:

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

    Step 4:

    Sync project file with grandle.
    wait for few minute.
    

    Step 5:

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

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

  • 2

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

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

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

    我已经这样做了:

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

    解决这个问题的方法是从SDK Manager添加“为Froyo提供Google Play服务”,然后重复第一步 .

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

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

  • 0

    关注这篇文章 - > 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

  • -3

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

    • 将google-play-services-lib作为模块(注意模块和项目之间的区别),然后将google-play-services.jar添加到模型"libs"目录中 .

    • 之后,通过创建库或将jar添加到另一个库,将jar添加到构建路径 . 我通常有一个IDEA库,我将所有的/libs/*.jar文件添加到 .

    • 通过模块设置(F4)将库添加到模块构建路径 .

    • 将google-play-services-lib添加为项目的模块依赖项 .

    • 完成!

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

  • 2

    打开项目 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'
    }
    
  • 4

    在我的情况下, google-play-services_lib 作为模块(外部Libs)集成到我的项目中的Google map和GCM .

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

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

    1>将Google Play服务更新为SDK Manager

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

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

  • 1

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

    • google-play-services.jar

    • google-play-services.jar.properties .

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

相关问题