当前位置: 首页 > 知识库问答 >
问题:

扩展cordova gradle文件以包括google服务

羊舌阎宝
2023-03-14

我正在尝试将com.google.gms: google-service: 3.0.0包含到我的cordova插件中,而无需将其破解到主build.gradle文件中。我已将以下文件添加到我的应用程序中:

build-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.

我已经尝试包含<code>构建额外的。gradle使用

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

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

如果我从build-extras.gradle中获取相同的代码并直接附加到build.gradle的末尾,它似乎可以工作。关于如何在我的build-extras.gradle文件中使其工作的任何想法?


共有2个答案

梁浩涆
2023-03-14

你必须包装你的额外构建。格拉德尔

ext.postBuildExtras = { //... your gradle supplement }

这里是一个构建额外功能的示例。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')
    }
}

并将其放在与构建相同的文件夹下。格雷德档案。在Cordova Android v7.0.0之后,您应该这样放置:

$PROJECT_PATH/platforms/android/app/build.gradle
$PROJECT_PATH/platforms/android/app/build-extras.gradle
汪迪
2023-03-14

从一些Gradle参考文件中:

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

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

ext.postBuildExtras = {
    apply plugin: com.google.gms.googleservices.GoogleServicesPlugin
}
 类似资料:
  • 我正在使用pcregrep搜索多行模式,我只希望pcregrep搜索具有特定文件扩展名的文件,即。

  • 问题内容: 我想用PHP包装CSS文件…因此,我为CSS文件编写了标头,并给了它一个.php文件扩展名,因此… css.php。 如果该页面已被用作包含内容,是否可以使用?还是这个新标题与页面所包含的框架冲突? 问题答案: 加纳夫钉牢了它。 我做: 然后在您的.css.php文件顶部:

  • 问题内容: 我想在2个不同的基本文件中提供相同的内容。 所以我正在尝试这样做: page1.html: page2.html: 问题是我似乎无法同时使用扩展和包含。有什么办法吗?如果没有,我该如何完成以上工作? commondata.html覆盖base1.html和base2.html中指定的块 这样做的目的是提供pdf和html格式的同一页面,但格式略有不同。上面的问题虽然简化了我要尝试做的事

  • 在3.0版中,我们将一些功能移到了单独的包里。本章讲述如何加载扩展包的模块,并且描述了这些包的功能。 8.1 加载扩展包 默认情况下扩展包并没有被加载。你必须稍微设置一下,这样Emacs就可以知道在哪里找到这些扩展包、加载哪些扩展包。总的来说,你应该调用slime-setup函数,并将需要用的包的名字作为一个列表传给它。例如,加载slime-scratch和slime-editing-comman

  • 我有以下组件,它主要依赖于react native的 我能够输入注释我自己的道具,但在上面的例子中抛出了一个错误 [flow]属性<代码>样式(在道具中找不到属性)常量样式:任意 我知道在typescript中,我可以将接口扩展到Image one,流程中是否有一些东西可以让我的道具以某种方式从继承所有类型?我如何从react native导入这些类型? 编辑我发现了一个叫做交叉点类型的概念,并尝

  • 我已经创建了一个chrome扩展来学习英语,它可以构建一个包含源代码/翻译等的词典。 现在,我想将这个“文件”(我将/会用字典条目构建一个“文件”)发送到Google Drive,并在我的Android应用程序中使用这个文件。 但我不想将此文件保存在我的个人驱动器帐户中,而是保存在当前用户的驱动器中,即使用chrome扩展名的用户(当然,如果该用户有驱动器帐户)。 在我找到的所有例子中,他们为“我