我一直试图在我的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" }
}
}
感谢您的帮助!
答案 0 :(得分:20)
对我来说,通过删除jCenter的警告工作
jCenter() remove it..
答案 1 :(得分:6)
要在 Android Studio v3.1 上解决此问题(不确定以前的版本),只需像下面这样编辑应用程序的 build.gradle :
apply plugin: 'com.google.gms.google-services'
并删除,然后进行同步。现在,您可以毫无问题地使用Firebase Assistant。答案 2 :(得分:5)
验证构建标签,并确保其中没有警告。
Firebase Assistant似乎对任何 Gradle信息,警告或错误非常敏感。
对我来说,这只是gradle中的一个简单“信息”,不再需要databinding.enabled:
DSL element 'android.dataBinding.enabled' is obsolete and has been replaced with 'android.buildFeatures.dataBinding'.
一旦删除Firebase助手,效果很好。
答案 3 :(得分:3)
我认为你的一些依赖是支持它的。只需转到你的build.gradle(模块应用程序)并注释掉它们中的大部分或全部(找出哪一个),再次同步忽略所有错误,如果它成功则尝试再次连接到firebase您可以返回build.gradle并取消注释以修复错误。
希望这有帮助
答案 4 :(得分:3)
评论Consider defining a bean named 'elasticsearchTemplate' in your configuration.
对我有用。因此,请检查gradle文件中的依赖项。
答案 5 :(得分:3)
我的问题是 jcenter 存储库,因为它自 2021 年 3 月 31 日起已弃用,请参阅:https://developer.android.com/studio/build/jcenter-migration
我用 jcenter()
替换了 mavenCentral()
。现在它可以工作了。
答案 6 :(得分:3)
导航组件的 safeargs 插件也可能导致这种情况。为了修复它,我暂时从应用级 id 'androidx.navigation.safeargs.kotlin'
文件中删除了 build.gradle
,然后将其重新添加。
答案 7 :(得分:2)
将gradle构建工具版本更改为3.0.1
答案 8 :(得分:2)
我遇到viewBinding
的问题。按照Google的指示进行操作,一切正常。
android {
...
buildFeatures {
viewBinding true
}
}
答案 9 :(得分:1)
我也遇到了这个问题,我发现解决这个问题的最好方法是:手动将您的应用程序连接到 firebase 数据库。
答案 10 :(得分:1)
基本上,您需要在执行此操作之前删除所有 gradle 警告。就我而言,我使用了 buildFeatures { viewBinding true}
代替
buildFeatures { dataBinding true }
答案 11 :(得分:1)
在我的情况下,这是因为我在项目中使用了数据绑定。这是我解决问题的方法:
在您的build.gradle(应用程序级别)中,将dataBinding设置如下:
将此代码放在buildTypes下的build.gradle(项目级别)中:
//Here is the code...
buildFeatures {
dataBinding = true
}
答案 12 :(得分:1)
长时间尝试许多事情之后。 这解决了我:在构建gradle中将谷歌服务版本更改为4.2.0 classpath'com.google.gms:google-services:4.2.0'
现在我的构建包看起来像这样:
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()
}
}
}
答案 13 :(得分:1)
就我而言,大多数依赖项都包含在compile
中,而不是implementation
中。因此,在我的compile
中将implementation
转换为build.gradle(Module : app)
很好
答案 14 :(得分:1)
由于build.gradle(应用程序级别)中Compile关键字的折旧而发生此错误
WARNING: Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'. It will be removed at the end of 2018.
其解决方案是
只需在build.gradle(应用级别)中将 compile 关键字替换为实施或 api
&
重建项目
如果重建后未解决,请重新启动Android Studio。
答案 15 :(得分:0)
删除项目中所有以前的Firebase依赖项,然后重试。插件和库。
之前我有这个问题,因为我已经手动设置了Firebase。
希望有帮助。
答案 16 :(得分:0)
真正的罪魁祸首是 building.gradle
的警告。 Firebase 助手非常敏感,它会检查您的 build.gradle
中的任何警告(甚至已弃用),然后开始工作。如果它找到任何,那么你会得到这个错误。
只需删除或解决 build.gradle
文件的每个警告。此外,删除已经存在的与您添加的相同内容的插件。
答案 17 :(得分:0)
我刚刚在我的 app/build.gradle
中替换了它dataBinding {
enabled = true
}
为此:
buildFeatures {
dataBinding true
}
现在我可以将我的应用连接到 Firebase
答案 18 :(得分:0)
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 Script/gradle.properties 中:
android.useAndroidX=true
3.在 Gradle Script/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.添加谷歌服务json文件
地点:
D:\AndroidStudioProjects\Whatsup_project\app
有关如何添加 JSON 文件的信息,请参阅 youtube video。
答案 19 :(得分:0)
我的解决方案是在项目级别 gradle 中删除 jcenter() 。当在 project 中添加了一些奇怪的依赖项或其他一些插件时,可能会发生这种情况。此处显示 jcenter() - jcenter 很快就会消亡。所以在删除它并重新同步项目后,连接到 firebase 选项工作正常。
答案 20 :(得分:0)
如果在评论此行后项目陷入混乱,对我有用
//apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
答案 21 :(得分:0)
检查您的项目级别是否没有相同的构建工具版本。如果没有下载并重新启动IDE。再次构建两个gradle,然后运行项目。请记住在使用 Firebase 辅助之前至少运行该项目 1 次。
答案 22 :(得分:0)
尝试在项目结构中将 Android Gradle 插件版本更改为 4.1.3,将 Gradle 版本更改为 6.5。它对我有帮助,也可能对你有帮助。 Android Firebase: Could not parse
答案 23 :(得分:0)
解决我的问题的是: 删除
databinding{enabled = true}
并插入
buildFeatures{dataBinding = true}
答案 24 :(得分:0)
要在您的应用中启用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的详细信息。
答案 25 :(得分:0)
面对这个问题时,我只是从中删除了20.0.1,
implementation 'com.google.firebase:firebase-auth:20.0.1'
(注意:我首先实现了firebase-boM,所以在我的情况下就已经发生了。)
然后同步并尝试重新连接,然后成功。 我认为它的发生有很多原因。 如果您使用的是Firebase boM。然后不要指定任何其他Firebase依赖版本。成功同步后,应解决该问题。 就您而言,我不清楚原因为何。
答案 26 :(得分:0)
将版本更改为以下版本。
dependencies {
classpath "com.android.tools.build:gradle:3.6.1"
classpath 'com.google.gms:google-services:4.3.3'
}
答案 27 :(得分:0)
注释gradle警告,然后同步项目。现在连接到Firebase,成功连接到Firebase后,请取消注释警告。 ;)
答案 28 :(得分:0)
我有一个类似的问题。我必须从您的应用程序gradle中的const calcSingle = time => {
// insert a if check somewhere here to check for time and if its negative
let _time = Math.abs(time);
let hour = Math.floor(_time / 60);
let minutes = _time % 60;
hour = hour < 10 ? "0" + hour : hour;
minutes = minutes < 10 ? "0" + minutes : minutes;
return (time < 0 ? '-' : '') + hour + ":" + minutes;
};
console.log(calcSingle(200), calcSingle(-200));
中删除useProguard
。
此后,我再也没有收到警告
答案 29 :(得分:0)
如果您不使用数据绑定,请从应用程序级别gradle中删除
dataBinding {
enabled = true
}
从您的应用级别gradle中删除这些行
答案 30 :(得分:0)
在我的情况下,我必须将build.gradle(Module:app)文件中的minSdkVersion更改为25,并且可以正常工作。
答案 31 :(得分:0)
这对我有用!
在您的android中转到Gradle.properties
通过在前面添加android.enableR8=true
来禁用#
:
#android.enableR8=true
或者,您可以将R8换成D8,将构建系统更改为使用D8而不是R8。
android.enableD8=true
答案 32 :(得分:0)
在我的情况下,我将build.gradle中的minSdkVersion更新为最后一个28.0.3,并在同步后正常工作