在Android库中添加对Google Play服务的依赖

时间:2016-01-08 19:12:38

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

我正在开发依赖Google Play服务的Android库。

Google提供的有关如何设置Google Play服务的说明仅指定了将其添加到应用程序项目而非库中时要遵循的步骤。

我尝试对我的库执行相同的步骤,最后得到以下build.gradle文件:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
        classpath 'com.google.gms:google-services:2.0.0-alpha3'
    }
}

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    jcenter()
    mavenCentral()
}

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

apply plugin: 'com.google.gms.google-services'

问题在于,在构建项目时,我得到以下异常:

* What went wrong:
Execution failed for task ':processDebugGoogleServices'.
> File google-services.json is missing from module root folder. The Google Services Plugin cannot function without it.

我理解这一点是因为,正如Google Play服务文档(https://developers.google.com/android/guides/setup)中所述,它依赖于json文件进行配置。但是,由于我将其构建为库,我希望将google-services.json文件添加到将使用我的库而不是将其放入库本身的项目中。

那我该怎么做呢?如何编译我的库,该库依赖于Google Play服务中定义的类,但不是真正在库中配置Google Play服务,而是由使用我的库的应用程序完成?

谢谢!

2 个答案:

答案 0 :(得分:1)

这比我想象的要简单。

我所要做的就是从库的classpath 'com.google.gms:google-services:2.0.0-alpha3'文件中删除行apply plugin: 'com.google.gms.google-services'build.gradle,然后将它们只添加到我的应用程序项目中的gradle文件中取决于这个自定义库。

答案 1 :(得分:0)

您可以使用this page

上的说明生成并添加google-services.json

它有一组逐步生成文件的说明。