【问题标题】:Error: Could not parse the Android application Module's Gradle Config错误:无法解析 Android 应用程序模块的 Gradle 配置
【发布时间】:2017-12-29 23:22:31
【问题描述】:

我一直在尝试在我的 Android 项目中设置 Firebase。 问题是,我收到了这个错误:

无法解析 Android 应用模块的 Gradle 配置

而且我真的解决不了。

我见过很多人遇到此错误,但似乎他们可以通过升级构建工具版本或更新 google-services 来解决它。我已经完成了所有这些工作,但到目前为止还没有成功。

这是我的 Gradle 脚本:

apply plugin: 'com.android.application'

android {
signingConfigs {
    AndroidAppPro {
    }
}
compileSdkVersion 25
buildToolsVersion '26.0.0'
useLibrary 'org.apache.http.legacy'
defaultConfig {
    applicationId "com.critizr.pro"
    minSdkVersion 14
    targetSdkVersion 25
    versionCode 9
    versionName "1.5.1"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}
productFlavors {
    preprod {
        applicationId "com.cr.pro"
        buildConfigField 'boolean', 'IS_PROD', 'false'
        buildConfigField 'String', 'HOST', '"https://myurl.com/"'
    }
    prod {
        applicationId "com.cr.pro"
        buildConfigField 'boolean', 'IS_PROD', 'true'
        buildConfigField 'String', 'HOST', '"https://myurl/"'
    }
}
packagingOptions {
     exclude 'META-INF/DEPENDENCIES.txt'
     exclude 'META-INF/LICENSE.txt'
     exclude 'META-INF/NOTICE.txt'
     exclude 'META-INF/NOTICE'
     exclude 'META-INF/LICENSE'
     exclude 'META-INF/DEPENDENCIES'
     exclude 'META-INF/notice.txt'
     exclude 'META-INF/license.txt'
     exclude 'META-INF/dependencies.txt'
     exclude 'META-INF/LGPL2.1'
   }
}

dependencies {
compile project(':lib-viewflow')

// new libs
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.android.support:support-v4:25.2.0'
compile 'com.android.support:cardview-v7:25.2.0'
compile 'com.android.support:recyclerview-v7:25.2.0'

compile 'com.google.android.gms:play-services-gcm:11.0.2'
compile 'com.google.android.gms:play-services-maps:11.0.2'
//compile 'com.google.android.gms:play-services-analytics:11.0.1'

compile 'org.apache.httpcomponents:httpclient:4.1'
compile 'org.apache.httpcomponents:httpmime:4.1'

compile 'com.joshdholtz.sentry:sentry-android:1.5.0'
compile 'com.borax12.materialdaterangepicker:library:1.6'
compile 'com.github.PhilJay:MPAndroidChart:v2.2.5'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.cloudinary:cloudinary-core:1.2.2'
compile 'com.cloudinary:cloudinary-android:1.2.2'
compile 'com.loopj.android:android-async-http:1.4.5'
}
 apply plugin: 'com.google.gms.google-services'

第二个:

 buildscript {
repositories {
    jcenter()
    maven { url "https://jitpack.io" }
}
 dependencies {
    classpath 'com.android.tools.build:gradle:2.3.1'
    classpath 'com.google.gms:google-services:3.1.0'
}
}

allprojects {
repositories {
    jcenter()
    maven { url "https://jitpack.io" }
}
}

【问题讨论】:

标签: android firebase gradle


【解决方案1】:

删除 jCenter 的警告对我来说有效

jCenter()  remove it..

【讨论】:

  • 不知道为什么 google 会这样做。他们至少可以注意不要在 hello world android 项目中显示这个 jCenter。
【解决方案2】:

要在 Android Studio v3.1 上解决这个问题(不确定以前的版本),只需像这样编辑应用的 build.gradle

  • 寻找apply plugin: 'com.google.gms.google-services'删除它,然后同步。现在您可以毫无问题地使用 Firebase 助手了。

【讨论】:

  • 这个答案是正确的,但解释得不好。实际上发生此错误的原因是因为您在连接之前将 admob 应用程序添加到您的应用程序,您需要删除 aply 插件才能重新启动。记住不需要删除任何其他依赖项或 json 文件
  • 它解决了问题谢谢,@KarueBensonKarue 也感谢您的解释。
  • 更新相同的最新版本,为我工作。安卓工作室 4.3
【解决方案3】:

验证构建选项卡,并确保其中没有任何警告。

Firebase 助理似乎对任何 Gradle 信息、警告或错误非常敏感。

对我来说,这是一个来自 gradle 的简单“信息”,不再需要 databinding.enabled:

 DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding'.

一旦移除 Firebase 助手,它就可以正常工作。

【讨论】:

  • 我有一个依赖项,android studio 一直在抱怨。一旦我删除了该依赖项,瞧。因此,检查构建选项卡是我的解决方案。谢谢
【解决方案4】:

导航组件的 safeargs 插件也可能导致此问题。为了解决这个问题,我暂时从应用级别的build.gradle 文件中删除了id 'androidx.navigation.safeargs.kotlin',然后再将其重新添加。

【讨论】:

  • 为我工作!但这背后的可能原因是什么?
  • 它对我有用
【解决方案5】:

注释掉apply plugin: io.fabric 对我有用。因此,请检查您的 gradle 文件中的依赖项。

【讨论】:

    【解决方案6】:

    我认为您的一些依赖项是其背后的原因。只需转到您的 build.gradle(模块应用程序)并注释掉它们中的大部分或全部(找出哪个),再次同步暂时忽略所有错误并尝试再次连接到 firebase,如果它成功,那么您可以返回到您的 build.gradle 并取消注释它们以修复错误。

    希望对你有帮助

    【讨论】:

    • 这对我有用,我认为罪魁祸首是 apply plugin: io.fabricapply plugin: 'kotlin-kapt'
    【解决方案7】:

    这个错误是由于built.gradle(app level)中Compile关键字的贬值

          WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'. It will be removed at the end of 2018.
    

    它的解决方案是

    1. 只需将 compile 关键字替换为 implementationapi inbuilt.gradle(app level)

      &

    2. 重建您的项目

    如果在 Rebuilt 后未解决,请重新启动您的 Android Studio。

    【讨论】:

      【解决方案8】:

      我遇到了viewBinding 的问题。按照 Google 的说明进行操作,一切正常。

      android {
          ...
          buildFeatures {
              viewBinding true
          }
      }
      

      【讨论】:

        【解决方案9】:

        我的问题是 jcenter 存储库,因为它自 2021 年 3 月 31 日起已弃用,请参阅:https://developer.android.com/studio/build/jcenter-migration

        我将jcenter() 替换为mavenCentral()。现在可以了。

        【讨论】:

        • 默认的 android 项目仍然显示 jCenter,即使 Google 开发人员知道它已被弃用
        【解决方案10】:

        将 gradle 构建工具版本更改为 3.0.1

        【讨论】:

          【解决方案11】:

          删除项目中所有以前的 Firebase 依赖项,然后重试。插件和库。

          我之前遇到过这个问题,因为我已经手动设置了 Firebase。

          希望对你有帮助。

          【讨论】:

          • 我该怎么做?我面临同样的问题,我之前手动设置了 Firebase。
          【解决方案12】:

          在我的情况下,大多数依赖项都包含在 compile 中,而不是 implementation 中。所以在我的build.gradle(Module : app) 中将compile 转换为implementation 效果很好

          【讨论】:

            【解决方案13】:

            如果您不使用数据绑定,请从您的应用级别 gradle 中删除

             dataBinding {
                enabled = true
            }
            

            从您的应用级别 gradle 中删除这些行

            【讨论】:

              【解决方案14】:

              就我而言,这是因为我在项目中使用了数据绑定。这是我解决问题的方法:

              在你的 build.gradle(App level) 中设置 dataBinding 如下:

              将此代码放在 build.gradle(Project level) 下的 buildTypes 中:

              //Here is the code...
              buildFeatures {
                  dataBinding = true
              }
              

              【讨论】:

                【解决方案15】:

                循序渐进地解决问题。

                1.在 Gradle Script/build.gradle(Project:your project name):

                添加依赖

                dependencies {  
                    classpath "com.android.tools.build:gradle:4.2.1"
                    classpath 'com.google.gms:google-services:4.3.8'
                 
                }
                    }
                

                jcenter 删除或注释掉:

                   allprojects {
                        repositories {
                            google()
                            mavenCentral()
                           // jcenter() // Warning: this repository is going to shut down soon
                        }
                    }
                

                2。在 Gradle 脚本/gradle.properties 中:

                android.useAndroidX=true
                

                3.在 Gradle 脚本/build.gradle(:app) 中:

                plugins {
                    id 'com.android.application'
                    id 'com.google.gms.google-services'
                }
                

                在构建类型之前添加 buildFeatures:

                buildFeatures {
                        dataBinding = true
                    }
                 
                

                最后:

                 dependencies {
                        implementation platform('com.google.firebase:firebase-bom:28.0.1')
                        implementation 'com.google.firebase:firebase-analytics'
                        implementation 'androidx.appcompat:appcompat:1.2.0'
                        implementation 'com.google.android.material:material:1.3.0'
                        implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
                        implementation 'com.google.firebase:firebase-database:20.0.0'
                        testImplementation 'junit:junit:4.+'
                        androidTestImplementation 'androidx.test.ext:junit:1.1.2'
                        androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
                    }
                

                4.添加 google servises json 文件

                位置:
                D:\AndroidStudioProjects\Whatsup_project\app

                请参阅youtube video,了解如何添加 JSON 文件。

                【讨论】:

                  【解决方案16】:

                  如果在评论这条线后出现颤振项目对我有用

                  //apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" 
                  

                  【讨论】:

                  • 同时注释这些行:` //def flutterRoot = localProperties.getProperty('flutter.sdk') //if (flutterRoot == null) { // throw new GradleException("Flutter SDK not找到。在 local.properties 文件中使用 flutter.sdk 定义位置。") //} ` and ` //flutter { // source '../..' //} `
                  【解决方案17】:

                  经过很长时间尝试了很多事情。 这解决了我:在构建 gradle 中将谷歌服务版本更改为 4.2.0 类路径 'com.google.gms:google-services:4.2.0'

                  现在我的构建 gradle 看起来像这样:

                  buildscript {
                  repositories {
                      google()
                      jcenter()
                  
                      dependencies {
                          classpath 'com.android.tools.build:gradle:3.6.1'
                  
                      }
                  }
                  dependencies {
                      classpath 'com.google.gms:google-services:4.2.0'
                  }
                  
                  allprojects {
                      repositories {
                          google()
                          jcenter()
                  
                      }
                  }
                  

                  }

                  【讨论】:

                    【解决方案18】:

                    当我遇到这个问题时,我只是从中删除了 20.0.1,

                    implementation 'com.google.firebase:firebase-auth:20.0.1'
                    

                    注意:我首先实施了 firebase-boM,所以它发生在我的案例中。

                    然后同步并尝试重新连接,然后它成功了。 我认为它的发生有很多原因。 如果您使用的是 Firebase 物料清单。然后不要指定任何其他 firebase 依赖项版本。同步成功后,应该可以解决了。 在你的情况下,我无法解释为什么会发生这种情况。

                    【讨论】:

                      【解决方案19】:

                      解决我的问题的是: 删除

                      databinding{enabled = true}

                      插入

                      buildFeatures{dataBinding = true}

                      【讨论】:

                        【解决方案20】:

                        基本上,您需要在执行此操作之前删除所有 gradle 警告。就我而言,我使用了buildFeatures { viewBinding true}

                        而不是 buildFeatures { dataBinding true }

                        【讨论】:

                        • 你在这里提到的两个声明有什么区别?
                        • 抱歉我的错误,我现在改正了。感谢您指出:)
                        【解决方案21】:

                        我也遇到了这个问题,我发现解决这个问题的最佳方法是:手动将您的应用程序连接到 firebase 数据库。

                        【讨论】:

                        • 我该怎么做?
                        【解决方案22】:

                        要在您的应用中启用 google firebase 服务,您需要将 google services plugin 添加到您的 gradle 文件 (build.gradle)。所以在gradle文件中 在依赖项下添加:

                        classpath 'com.google.gms:google-services:4.3.0'  // Google Services plugin
                        

                        在存储库下检查您是否拥有 Google 的 Maven 存储库

                        google() //Google's Maven repository
                        

                        有关如何设置 firebase check here 的详细说明,请参阅官方文档。

                        【讨论】:

                          【解决方案23】:

                          结论

                          真正的罪魁祸首是您的build.gradle 的警告。 Firebase 助手非常敏感,它会检查您的build.gradle 中的任何警告(甚至是已弃用的警告),然后开始工作。如果它找到任何东西,那么您将收到此错误。

                          解决方案

                          只需删除或解决build.gradle 文件的所有警告。此外,删除您正在添加的相同内容的已存在插件。

                          【讨论】:

                            【解决方案24】:

                            从 Gradle 中删除关注

                            testImplementation 'junit:junit:'
                            

                            这对我有用,也可以毫无问题地连接到 Firebase,您只需要重建项目,然后点击连接到 Firebase。完成了。

                            【讨论】:

                              【解决方案25】:

                              我刚刚遇到了类似的问题。我不得不从您的应用程序 gradle 中的 buildTypes 中删除 useProguard

                              之后我没有再收到警告

                              【讨论】:

                                【解决方案26】:

                                在我的例子中,我不得不将 build.gradle(Module: app) 文件中的 minSdkVersion 更改为 25 并且它起作用了。

                                【讨论】:

                                  【解决方案27】:

                                  在我的情况下,我将 build.gradle 中的 minSdkVersion 更新到最后一个 28.0.3 并且在我同步后它工作正常

                                  【讨论】:

                                    【解决方案28】:

                                    这对我有用!

                                    在你的 android 中转到 Gradle.properties

                                    通过在前面添加# 来禁用android.enableR8=true

                                    #android.enableR8=true
                                    

                                    或者,您可以将 R8 换成 D8,构建系统改为使用 D8 而不是 R8。

                                    android.enableD8=true
                                    

                                    【讨论】:

                                      【解决方案29】:

                                      将版本更改为以下。

                                      dependencies {
                                          classpath "com.android.tools.build:gradle:3.6.1"
                                          classpath 'com.google.gms:google-services:4.3.3'
                                      }
                                      

                                      【讨论】:

                                        【解决方案30】:

                                        尝试在项目结构中将 Android Gradle 插件版本更改为 4.1.3,将 Gradle 版本更改为 6.5。它帮助了我,它也可能对你有帮助。 Android Firebase: Could not parse

                                        【讨论】:

                                          猜你喜欢
                                          • 1970-01-01
                                          • 1970-01-01
                                          • 2022-07-17
                                          • 2021-11-01
                                          • 2022-09-23
                                          • 1970-01-01
                                          • 2022-07-17
                                          • 2022-01-23
                                          • 2023-03-26
                                          相关资源
                                          最近更新 更多