【问题标题】:Android Studio Build Error - Could not find method implementation() for arguments [com.google.firebase:firebase-core:16.0.0]Android Studio 构建错误 - 找不到参数 [com.google.firebase:firebase-core:16.0.0] 的方法 implementation()
【发布时间】:2018-06-07 11:29:54
【问题描述】:

我正在使用 Cordova 在我的 android 项目中实施 FCM 当我构建我的项目时,我收到错误“在 org.gradle.api.internal.artifacts.dsl 类型的对象上找不到参数 [com.google.firebase:firebase-core:16.0.0] 的方法实现()。依赖项.DefaultDependencyHandler。 " 这是我在 app 目录中的 build.gradle 文件代码

apply plugin: 'com.android.application'
buildscript {
repositories {
    mavenCentral()
    jcenter()
    maven {
        url "https://maven.google.com"
    }
    google()
}

dependencies {

    classpath 'com.android.tools.build:gradle:3.1.2'

    implementation 'com.google.firebase:firebase-core:16.0.0' // Error generating line
}
}

【问题讨论】:

    标签: android firebase android-studio cordova-plugin-fcm


    【解决方案1】:

    您应该按照 Firebase 建议的顺序编写存储库和依赖项。

    你的项目 lavel 的 build.gradle 应该是这样的,文件的路径就在项目内部。

    buildscript {
        repositories {
            google()
            jcenter()
            mavenCentral()
            maven {
                url 'Fabric URL'
            }
    
        }
    
        dependencies {
            classpath 'com.google.gms:google-services:3.3.1'
        }
    }
    
    allprojects {
        repositories {
            google()
            jcenter()
            maven {
                url "JIT PACK URL"
            }
            maven {
                url 'MAVEN URL'
            }
        }
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    

    然后,您的应用程序级别 build.gradle 应该如下所示,文件的路径在应用程序内部。 C:\Users\ABC\DEF\项目名称\app\build.gradle

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 27
        buildToolsVersion '27.0.3'
        flavorDimensions "versionCode"
        defaultConfig {
            applicationId "App Package Name as "com.companyName.appName""
            minSdkVersion 19
            targetSdkVersion 27
            multiDexEnabled true
            versionCode 15
            versionName "1.0.12"
        }
    
        buildTypes {
            release {
                minifyEnabled false
                debuggable false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        implementation fileTree(include: ['*.jar'], dir: 'libs')
    
        //  firebase push notifications
        implementation 'com.google.firebase:firebase-messaging:15.0.2'
        implementation 'com.google.firebase:firebase-core:15.0.2'
        implementation 'com.firebase:firebase-jobdispatcher-with-gcm-dep:0.5.2'
    
        // firebase remote config
        implementation 'com.google.firebase:firebase-config:15.0.0'
    
    }
    
    apply plugin: 'com.google.gms.google-services'
    

    如果这对您没有帮助,请尝试将所有版本的 firebase 和 firebase 远程配置更改为最新版本。 因为有时不同的版本可能会导致问题。

    【讨论】:

    • 感谢您的帮助。现在我正在使用npmjs.com/package/cordova-plugin-fcm-with-dependecy-updated 提到的更新的cordova FCM 插件。现在工作正常
    • 我还删除了 app 目录内 build.gradle 文件中的最后一行“apply plugin: 'com.google.gms.google-services'”。因为在 gradle 4.4 及更高版本中不需要它。它已经写在文件的某个地方。这就是它抛出错误的原因。现在工作正常。
    猜你喜欢
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 2018-05-24
    • 2022-01-11
    相关资源
    最近更新 更多