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

配置项目: app时出现问题。>无法创建任务:应用程序:过程DebugGoogleServices。

景昊焜
2023-03-14

我有一个错误,当我建立我的项目'科尔多瓦建立Android'我使用的插件ibm科尔多瓦插件mfp-推动,我也使用google-service.json

D:\Work\JIWASRAYA\Mobilefirst8\u backup\MobileApps

失败:生成失败,出现异常。

  • 哪里出错了:配置项目': app'时出现问题。

无法创建任务“:app:processDebugGoogleServices”。无法为抽象类“GoogleServicesTask”创建代理类。

>

  • 尝试:使用--stackTrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。运行--can以获得完整的见解。

    得到更多的帮助https://help.gradle.org

    在1s中生成失败D:\Work\JIWASRAYA\Mobilefirst8\u backup\MobileApps\platforms\android\gradlew:命令失败,退出代码1错误输出:失败:生成失败,出现异常。

    • 哪里出错了:配置项目': app'时出现问题。

    无法创建任务“:app:processDebugGoogleServices”。无法为抽象类“GoogleServicesTask”创建代理类。

    >

  • 尝试:使用--stackTrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。运行--can以获得完整的见解。

    得到更多的帮助https://help.gradle.org

    生成在1s内失败

    D:\Work\JIWASRAYA\Mobilefirst8\u backup\MobileApps

    这是我的应用程序buid.gradle内容

    /*
           Licensed to the Apache Software Foundation (ASF) under one
           or more contributor license agreements.  See the NOTICE file
           distributed with this work for additional information
           regarding copyright ownership.  The ASF licenses this file
           to you under the Apache License, Version 2.0 (the
           "License"); you may not use this file except in compliance
           with the License.  You may obtain a copy of the License at
    
             http://www.apache.org/licenses/LICENSE-2.0
    
           Unless required by applicable law or agreed to in writing,
           software distributed under the License is distributed on an
           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
           KIND, either express or implied.  See the License for the
           specific language governing permissions and limitations
           under the License.
    */
    
    apply plugin: 'com.android.application'
    
    buildscript {
        repositories {
            mavenCentral()
            google()
            jcenter()
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:3.0.1'
        }
    }
    
    // Allow plugins to declare Maven dependencies via build-extras.gradle.
    allprojects {
        repositories {
            mavenCentral()
            jcenter()
        }
    }
    
    task wrapper(type: Wrapper) {
        gradleVersion = '4.10.3'
    }
    
    // Configuration properties. Set these via environment variables, build-extras.gradle, or gradle.properties.
    // Refer to: http://www.gradle.org/docs/current/userguide/tutorial_this_and_that.html
    ext {
        apply from: '../CordovaLib/cordova.gradle'
    
        // The value for android.compileSdkVersion.
        if (!project.hasProperty('cdvCompileSdkVersion')) {
            cdvCompileSdkVersion = null;
        }
        // The value for android.buildToolsVersion.
        if (!project.hasProperty('cdvBuildToolsVersion')) {
            cdvBuildToolsVersion = null;
        }
        // Sets the versionCode to the given value.
        if (!project.hasProperty('cdvVersionCode')) {
            cdvVersionCode = null
        }
        // Sets the minSdkVersion to the given value.
        if (!project.hasProperty('cdvMinSdkVersion')) {
            cdvMinSdkVersion = null
        }
        // Sets the maxSdkVersion to the given value.
        if (!project.hasProperty('cdvMaxSdkVersion')) {
            cdvMaxSdkVersion = null
        }
        // The value for android.targetSdkVersion.
        if (!project.hasProperty('cdvTargetSdkVersion')) {
            cdvTargetSdkVersion = null;
        }
        // Whether to build architecture-specific APKs.
        if (!project.hasProperty('cdvBuildMultipleApks')) {
            cdvBuildMultipleApks = null
        }
        // Whether to append a 0 "abi digit" to versionCode when only a single APK is build
        if (!project.hasProperty('cdvVersionCodeForceAbiDigit')) {
            cdvVersionCodeForceAbiDigit = null
        }
        // .properties files to use for release signing.
        if (!project.hasProperty('cdvReleaseSigningPropertiesFile')) {
            cdvReleaseSigningPropertiesFile = null
        }
        // .properties files to use for debug signing.
        if (!project.hasProperty('cdvDebugSigningPropertiesFile')) {
            cdvDebugSigningPropertiesFile = null
        }
        // Set by build.js script.
        if (!project.hasProperty('cdvBuildArch')) {
            cdvBuildArch = null
        }
    
        // Plugin gradle extensions can append to this to have code run at the end.
        cdvPluginPostBuildExtras = []
    }
    
    // PLUGIN GRADLE EXTENSIONS START
    apply from: "../cordova-plugin-mfp/member-build-extras.gradle"
    apply from: "../cordova-plugin-mfp-push/member-build-extras.gradle"
    // PLUGIN GRADLE EXTENSIONS END
    
    def hasBuildExtras1 = file('build-extras.gradle').exists()
    if (hasBuildExtras1) {
        apply from: 'build-extras.gradle'
    }
    
    def hasBuildExtras2 = file('../build-extras.gradle').exists()
    if (hasBuildExtras2) {
        apply from: '../build-extras.gradle'
    }
    
    // Set property defaults after extension .gradle files.
    ext.cdvCompileSdkVersion = cdvCompileSdkVersion == null ? (
        defaultCompileSdkVersion == null 
            ? privateHelpers.getProjectTarget()
            : defaultCompileSdkVersion 
    ) : Integer.parseInt('' + cdvCompileSdkVersion);
    
    if (ext.cdvBuildToolsVersion == null) {
        ext.cdvBuildToolsVersion = privateHelpers.findLatestInstalledBuildTools()
        //ext.cdvBuildToolsVersion = project.ext.defaultBuildToolsVersion
    }
    if (ext.cdvDebugSigningPropertiesFile == null && file('../debug-signing.properties').exists()) {
        ext.cdvDebugSigningPropertiesFile = '../debug-signing.properties'
    }
    if (ext.cdvReleaseSigningPropertiesFile == null && file('../release-signing.properties').exists()) {
        ext.cdvReleaseSigningPropertiesFile = '../release-signing.properties'
    }
    
    // Cast to appropriate types.
    ext.cdvBuildMultipleApks = cdvBuildMultipleApks == null ? false : cdvBuildMultipleApks.toBoolean();
    ext.cdvVersionCodeForceAbiDigit = cdvVersionCodeForceAbiDigit == null ? false : cdvVersionCodeForceAbiDigit.toBoolean();
    
    // minSdkVersion, maxSdkVersion and targetSdkVersion
    ext.cdvMinSdkVersion = cdvMinSdkVersion == null ? defaultMinSdkVersion : Integer.parseInt('' + cdvMinSdkVersion)
    if (cdvMaxSdkVersion != null) {
        ext.cdvMaxSdkVersion = Integer.parseInt('' + cdvMaxSdkVersion)
    }
    ext.cdvTargetSdkVersion = cdvTargetSdkVersion == null ? defaultTargetSdkVersion  : Integer.parseInt('' + cdvTargetSdkVersion)
    
    ext.cdvVersionCode = cdvVersionCode == null ? null : Integer.parseInt('' + cdvVersionCode)
    
    def computeBuildTargetName(debugBuild) {
        def ret = 'assemble'
        if (cdvBuildMultipleApks && cdvBuildArch) {
            def arch = cdvBuildArch == 'arm' ? 'armv7' : cdvBuildArch
            ret += '' + arch.toUpperCase().charAt(0) + arch.substring(1);
        }
        return ret + (debugBuild ? 'Debug' : 'Release')
    }
    
    // Make cdvBuild a task that depends on the debug/arch-sepecific task.
    task cdvBuildDebug
    cdvBuildDebug.dependsOn {
        return computeBuildTargetName(true)
    }
    
    task cdvBuildRelease
    cdvBuildRelease.dependsOn {
        return computeBuildTargetName(false)
    }
    
    task cdvPrintProps {
        doLast {
            println('cdvCompileSdkVersion=' + cdvCompileSdkVersion)
            println('cdvBuildToolsVersion=' + cdvBuildToolsVersion)
            println('cdvVersionCode=' + cdvVersionCode)
            println('cdvVersionCodeForceAbiDigit=' + cdvVersionCodeForceAbiDigit)
            println('cdvMinSdkVersion=' + cdvMinSdkVersion)
            println('cdvMaxSdkVersion=' + cdvMaxSdkVersion)
            println('cdvTargetSdkVersion=' + cdvTargetSdkVersion)
            println('cdvBuildMultipleApks=' + cdvBuildMultipleApks)
            println('cdvReleaseSigningPropertiesFile=' + cdvReleaseSigningPropertiesFile)
            println('cdvDebugSigningPropertiesFile=' + cdvDebugSigningPropertiesFile)
            println('cdvBuildArch=' + cdvBuildArch)
            println('computedVersionCode=' + android.defaultConfig.versionCode)
            android.productFlavors.each { flavor ->
                println('computed' + flavor.name.capitalize() + 'VersionCode=' + flavor.versionCode)
            }
        }
    }
    
    android {
        defaultConfig {
            versionCode cdvVersionCode ?: new BigInteger("" + privateHelpers.extractIntFromManifest("versionCode"))
            applicationId privateHelpers.extractStringFromManifest("package")
    
            if (cdvMinSdkVersion != null) {
                minSdkVersion cdvMinSdkVersion
            }
    
            if (cdvMaxSdkVersion != null) {
                maxSdkVersion cdvMaxSdkVersion
            }
    
            if(cdvTargetSdkVersion != null) {
                targetSdkVersion cdvTargetSdkVersion
            }
        }
    
        lintOptions {
          abortOnError false;
        }
    
        compileSdkVersion cdvCompileSdkVersion
        buildToolsVersion cdvBuildToolsVersion
    
        // This code exists for Crosswalk and other Native APIs.
        // By default, we multiply the existing version code in the
        // Android Manifest by 10 and add a number for each architecture.
        // If you are not using Crosswalk or SQLite, you can
        // ignore this chunk of code, and your version codes will be respected.
    
        if (Boolean.valueOf(cdvBuildMultipleApks)) {
            flavorDimensions "default"
    
            productFlavors {
                armeabi {
                    versionCode defaultConfig.versionCode*10 + 1
                    ndk {
                        abiFilters = ["armeabi"]
                    }
                }
                armv7 {
                    versionCode defaultConfig.versionCode*10 + 2
                    ndk {
                        abiFilters = ["armeabi-v7a"]
                    }
                }
                arm64 {
                    versionCode defaultConfig.versionCode*10 + 3
                    ndk {
                        abiFilters = ["arm64-v8a"]
                    }
                }
                x86 {
                    versionCode defaultConfig.versionCode*10 + 4
                    ndk {
                        abiFilters = ["x86"]
                    }
                }
                x86_64 {
                    versionCode defaultConfig.versionCode*10 + 5
                    ndk {
                        abiFilters = ["x86_64"]
                    }
                }
            }
        } else if (Boolean.valueOf(cdvVersionCodeForceAbiDigit)) {
            // This provides compatibility to the default logic for versionCode before cordova-android 5.2.0
            defaultConfig {
                versionCode defaultConfig.versionCode*10
            }
        }
    
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
    
        if (cdvReleaseSigningPropertiesFile) {
            signingConfigs {
                release {
                    // These must be set or Gradle will complain (even if they are overridden).
                    keyAlias = ""
                    keyPassword = "__unset" // And these must be set to non-empty in order to have the signing step added to the task graph.
                    storeFile = null
                    storePassword = "__unset"
                }
            }
            buildTypes {
                release {
                    signingConfig signingConfigs.release
                }
            }
            addSigningProps(cdvReleaseSigningPropertiesFile, signingConfigs.release)
        }
    
        if (cdvDebugSigningPropertiesFile) {
            addSigningProps(cdvDebugSigningPropertiesFile, signingConfigs.debug)
        }
    }
    
    /*
     * WARNING: Cordova Lib and platform scripts do management inside of this code here,
     * if you are adding the dependencies manually, do so outside the comments, otherwise
     * the Cordova tools will overwrite them
     */
    
    
    dependencies {
        implementation fileTree(dir: 'libs', include: '*.jar')
        // SUB-PROJECT DEPENDENCIES START
        implementation(project(path: ":CordovaLib"))
        implementation "com.android.support:support-v4:24.1.1+"
        implementation "com.android.support:support-annotations:27.+"
        implementation "com.squareup.okhttp:okhttp-urlconnection:2+"
        implementation "com.google.firebase:firebase-messaging:10.2.6"
        implementation "com.android.support:support-v4:26.0.1"
        // SUB-PROJECT DEPENDENCIES END
    }
    
    def promptForReleaseKeyPassword() {
        if (!cdvReleaseSigningPropertiesFile) {
            return;
        }
        if ('__unset'.equals(android.signingConfigs.release.storePassword)) {
            android.signingConfigs.release.storePassword = privateHelpers.promptForPassword('Enter key store password: ')
        }
        if ('__unset'.equals(android.signingConfigs.release.keyPassword)) {
            android.signingConfigs.release.keyPassword = privateHelpers.promptForPassword('Enter key password: ');
        }
    }
    
    gradle.taskGraph.whenReady { taskGraph ->
        taskGraph.getAllTasks().each() { task ->
          if(['validateReleaseSigning', 'validateSigningRelease', 'validateSigningArmv7Release', 'validateSigningX76Release'].contains(task.name)) {
             promptForReleaseKeyPassword()
          }
        }
    }
    
    def addSigningProps(propsFilePath, signingConfig) {
        def propsFile = file(propsFilePath)
        def props = new Properties()
        propsFile.withReader { reader ->
            props.load(reader)
        }
    
        def storeFile = new File(props.get('key.store') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'storeFile'))
        if (!storeFile.isAbsolute()) {
            storeFile = RelativePath.parse(true, storeFile.toString()).getFile(propsFile.getParentFile())
        }
        if (!storeFile.exists()) {
            throw new FileNotFoundException('Keystore file does not exist: ' + storeFile.getAbsolutePath())
        }
        signingConfig.keyAlias = props.get('key.alias') ?: privateHelpers.ensureValueExists(propsFilePath, props, 'keyAlias')
        signingConfig.keyPassword = props.get('keyPassword', props.get('key.alias.password', signingConfig.keyPassword))
        signingConfig.storeFile = storeFile
        signingConfig.storePassword = props.get('storePassword', props.get('key.store.password', signingConfig.storePassword))
        def storeType = props.get('storeType', props.get('key.store.type', ''))
        if (!storeType) {
            def filename = storeFile.getName().toLowerCase();
            if (filename.endsWith('.p12') || filename.endsWith('.pfx')) {
                storeType = 'pkcs12'
            } else {
                storeType = signingConfig.storeType // "jks"
            }
        }
        signingConfig.storeType = storeType
    }
    
    for (def func : cdvPluginPostBuildExtras) {
        func()
    }
    
    // This can be defined within build-extras.gradle as:
    //     ext.postBuildExtras = { ... code here ... }
    if (hasProperty('postBuildExtras')) {
        postBuildExtras()
    }
  • 共有1个答案

    张瀚漠
    2023-03-14

    如果您使用的是FCM 20,请将cordova plugin mfp push升级至最新版本。并定义com.Android工具。构建:gradle和com.google.gms:google服务,其版本明确如下所示:

    classpath'com.Android工具。构建:gradle:3.5.1“classpath”com.google.gms:google服务:4.3.3'

     类似资料:
    • org.springframework.beans.factory.XML.xmlBeanDefinitionStoreException:ServletContext资源[/web-inf/servlet-context.XML]的XML文档中的第38行无效;嵌套异常是org.xml.sax.SAXParseException;行号:38;列号:109;CVC-complex-type2.4.a

    • 我有一个成功消耗来自Kafka主题的消息的Spring引导服务。作为进一步开发的一部分,我需要在之前创建并运行良好的相同消费者服务中将消息发布到另一个Kafka主题。但是当我介绍Kafka生产者配置时,它会给我消费者配置中的错误,说 我的工作Kafka消费者配置,这是突然抛出问题后,介绍生产者配置 Kafka消费者配置。JAVA 将其添加到服务后导致问题的生产者配置 Kafka普罗德里格。JAVA

    • 我已经用Flutter在VS代码上创建了一个应用程序,在我开始准备构建应用程序之前,没有任何问题。我开始将包名从“com.example.careona19”更改为“com.covid19rsa.app”,但随后开始出现以下错误:

    • 在使用gradle--stacktrace之后,我得到以下错误: 运行gradle后--信息 你知道这个问题怎么解决吗?

    • 我们的第一个开发任务就是创建网站入口,让我们可以维护商品信息,包括创建商品,编辑已经创建的商品以及删除不需要的商品等等。我们会通过小步迭代的方式开发应用程序,而小步的意思是「在可度量的几分钟内」。一般情况下,我们的迭代包含多个步骤,比如迭代 C 中会有步骤 C1,C2,C3 等等。当前这个迭代中只包含两步。让我们开始吧。 迭代 A1:创建商品维护应用 Depot 应用的核心其实是一个数据库。在后面

    • [我刚刚为颤振安装了所有东西…并运行了第一个默认应用程序…但这个问题正在显示]如下图所示: 失败:生成失败,出现异常。 出现问题:任务“:app:processDebugManifest”(类型“ProcessMultiApkApplicationManifest”)的配置存在问题 文件“E:\Program Future\flatter\flatter\anualproject\build\ap