添加和配置“ cordova-plugin-firebase”后,在应用程序(cordova build android)中执行构建时出错

时间:2018-07-23 20:52:30

标签: android cordova firebase

我使用Cordova创建了一个应用,然后按照说明准备与Firebase插件集成的应用:

  1. 创建了密钥库(需要与Firebase集成)。
  2. 我在Firebase中创建了应用程序的项目,并通知了哈希 存储在密钥库中。
  3. 我安装了插件“ cordova-plugin-firebase”。
  4. 将文件google-services.json复制到 项目。

在阅读了插件和Firebase文档之后,我遇到了此错误:

  

:app:processDebugGoogleServices失败

     

失败:构建失败,并出现异常。

     

*出了什么问题:   任务':app:processDebugGoogleServices'执行失败。   >文件google-services.json丢失。没有它,Google Services插件将无法运行。     搜索位置:    /myAppCordova2/platforms/android/app/src/nullnull/debug/google-services.json    /myAppCordova2/platforms/android/app/src/debug/nullnull/google-services.json    /myAppCordova2/platforms/android/app/src/nullnull/google-services.json    /myAppCordova2/platforms/android/app/src/debug/google-services.json    /myAppCordova2/platforms/android/app/src/nullnullDebug/google-services.json   /myAppCordova2/platforms/android/app/google-services.json

SO中建议的解决方案: 将google-services.json复制到目录/platforms/android/app/,但这会产生另一个错误:

  

:app:mergeDebugResources失败

     

失败:构建失败,并出现异常。

     
      
  • 出了什么问题:   任务':app:mergeDebugResources'的执行失败。      
        

    [string / google_app_id] /myAppCordova2/platforms/android/app/src/main/res/values/strings.xml [string / google_app_id] / myAppCordova2 / platforms / android / app / build / generation / res / google- services / debug / values / values.xml:错误:资源重复     [string / google_api_key] /myAppCordova2/platforms/android/app/src/main/res/values/strings.xml [string / google_api_key] / myAppCordova2 / platforms / android / app / build / generated / res / google-services / debug /values/values.xml:错误:资源重复

      
  •   

PS: 我尝试了在SO中提出的几个修复程序,但都没有解决我的问题,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法:

此处提供了与我遵循的(以及引起问题的)类似的指令,尽管相关性的版本有些过时:

  

https://firebase.google.com/docs/android/setup

造成我这种情况的原因是,按照Firebase中“应用程序创建”页面上的这些说明进行操作,并将依赖项添加到项目和模块的build.gradle文件中,如下所示:

添加项目build.gradle /project/platforms/android/build.gradle

buildscript {
    repositories {
        jcenter ()
        maven {
            url "https://maven.google.com"
        }
        Google()
    }
    dependencies {

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.android.tools.build:gradle:3.1.3'

        // Firebase
        classpath 'com.google.gms: google-services: 4.0.0'
    }
}

并添加模块build.gradle /project/platforms/android/app/build.gradle

buildscript {
    repositories {
        mavenCentral ()
        jcenter ()
        maven {
            url "https://maven.google.com"
        }
        Google()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.3'

        // Firebase
        classpath 'com.google.gms: google-services: 4.0.0'
        classpath 'com.google.firebase: firebase-core: 16.0.0'
    }
}

// Firebase, add at the end of the same file
apply plugin: 'com.google.gms.google-services'

解决方案:

我找到的解决方案是对注释// Firebase之前的行进行注释:

文件:/project/platforms/android/build.gradle

buildscript {
    repositories {
        jcenter ()
        maven {
            url "https://maven.google.com"
        }
        Google()
    }
    dependencies {

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
        classpath 'com.android.tools.build:gradle:3.1.3'

        // Firebase
        // classpath 'com.google.gms: google-services: 4.0.0'
    }
}

文件:/project/platforms/android/app/build.gradle

    buildscript {
        repositories {
            mavenCentral ()
            jcenter ()
            maven {
                url "https://maven.google.com"
            }
            Google()
        }

        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.3'

            // Firebase
            //classpath 'com.google.gms: google-services: 4.0.0'
            //classpath 'com.google.firebase: firebase-core: 16.0.0'
        }
    }

// Firebase, add at the end of the same file
//apply plugin: 'com.google.gms.google-services'

完成这些步骤后,一切正常,我能够毫无问题地运行$ cordova build android


建议: 如果发生任何其他错误,请尝试删除插件和平台,然后重新创建它们:

$ cordova plugin rm cordova-plugin-firebase
$ cordova platform rm android

$ cordova plugin add cordova-plugin-firebase
$ cordova platform add android