扩展cordova gradle文件以包含谷歌服务

时间:2016-09-28 04:38:50

标签: cordova google-play-services cordova-plugins

我试图将com.google.gms:google-services:3.0.0包含在我的cordova插件中,而不必将其隐藏到主build.gradle文件中。我已将以下文件添加到我的应用程序中:

集结extras.gradle

buildscript {
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

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

尝试构建应用程序时出现以下错误:

* Where:
Script 'platforms/android/build-extras.gradle' line: 11

* What went wrong:
A problem occurred evaluating script.
> Plugin with id 'com.google.gms.google-services' not found.

我尝试使用build-extras.gradle添加<framework src="src/android/build-extras.gradle" custom="true" type="gradleReference" />,并手动将其复制到platforms/android

科尔多瓦参考: https://cordova.apache.org/docs/en/latest/guide/platforms/android/#extending-buildgradle

Google参考: https://developers.google.com/identity/sign-in/android/start-integrating

如果我从build-extras.gradle获取相同的代码并直接追加到build.gradle的末尾,那么它似乎有效。关于如何在我的build-extras.gradle文件中使用它的任何想法?

2 个答案:

答案 0 :(得分:1)

您必须使用

包装 build-extras.gradle
ext.postBuildExtras = { //... your gradle supplement }

以下是 build-extras.gradle 文件的示例:

ext.postBuildExtras = {
    android {
        packagingOptions {
            exclude 'META-INF/DEPENDENCIES'
            exclude 'META-INF/LICENSE'
            exclude 'META-INF/LICENSE.txt'
            exclude 'META-INF/license.txt'
            exclude 'META-INF/NOTICE'
            exclude 'META-INF/NOTICE.txt'
            exclude 'META-INF/notice.txt'
            exclude 'META-INF/ASL2.0'
        }

    }
    dependencies {
        compile files('libs/httpclient-4.5.4.jar', 'libs/httpcore-4.4.7.jar')
    }
}

并将其放在与 build.gradle 文件相同的文件夹下。 在Cordova Android v7.0.0之后,你应该这样放置它:

$PROJECT_PATH/platforms/android/app/build.gradle
$PROJECT_PATH/platforms/android/app/build-extras.gradle

答案 1 :(得分:0)

从某些Gradle参考文件中:

  

必须使用类而不是id(string)才能应用插件   从非根gradle文件

您必须在gradle文件的底部包含这样的类:

ext.postBuildExtras = {
    apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
}
相关问题