我在日志中遇到此错误
Error:Failed to resolve: com.twitter.sdk.android:twitter:2.3.0
当我尝试添加此依赖项时:
compile 'com.firebaseui:firebase-ui:1.1.1'
有人可以帮助我,我不确定我做错了什么。这是我从中获取依赖关系的链接:https://github.com/firebase/FirebaseUI-Android。在旁注中,我没有在我的应用程序中使用Twitter登录或与Twitter进行任何类型的交互,因此我不确定为什么在放置该依赖项后同步我的gradle时出现该错误。
答案 0 :(得分:56)
您项目的gradle文件应如下所示。
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.google.gms:google-services:3.0.0'
}
}
allprojects {
repositories {
jcenter()
// Required for 'com.firebaseui:firebase-ui:1.1.1'
maven {
url 'https://maven.fabric.io/public'
}
}
}
答案 1 :(得分:9)
让我们从为什么开始 - 这来自Firebase身份验证文档: “Firebase身份验证提供了后端服务,易于使用的SDK和现成的UI库,可以对您的应用程序的用户进行身份验证。它支持使用密码进行身份验证,流行的联合身份提供商(如Google,Facebook和Twitter等)。”
因此,通过使用Firebase身份验证,我们可以允许我们的应用用户使用他们的Google,Facebook,GitHub或Twitter帐户登录。
现在帮助 - 一些侦探工作揭示了这里发生了什么。 当使用Git存储库中的东西时 - 在本例中为github.com/firebase/FirebaseUI-Android - 我们应该始终阅读README.md文件。
... github.com/firebase/FirebaseUI-Android/blob/master/README.md
...安装
dependencies {
// FirebaseUI Database only
compile 'com.firebaseui:firebase-ui-database:1.2.0'
// FirebaseUI Auth only
compile 'com.firebaseui:firebase-ui-auth:1.2.0'
// FirebaseUI Storage only
compile 'com.firebaseui:firebase-ui-storage:1.2.0'
// Single target that includes all FirebaseUI libraries above
compile 'com.firebaseui:firebase-ui:1.2.0'
}
您正在使用com.firebaseui:firebase-ui:1.1.1,这是旧版本而不是实际的README.md,但此评论仍适用:
//包含上面所有FirebaseUI库的单个目标
因此,由于它将所有三个库都包含在一个中,让我们去阅读每个库的自述文件。
可以在主页上找到它们的文件夹 - 数据库,身份验证,存储
https://github.com/firebase/FirebaseUI-Android
存储和数据库自述文件是关于如何在Java代码中使用它们,没有别的。
但是Auth README.md有一些关于配置的东西 - 因为我们在这里谈论配置: https://github.com/firebase/FirebaseUI-Android/tree/master/auth
配置
作为先决条件,请确保您的应用程序已配置为与Firebase一起使用:请参阅Firebase文档。然后,添加FirebaseUI auth库依赖项。如果您的项目使用Gradle,请添加依赖项:
dependencies {
// ...
compile 'com.firebaseui:firebase-ui-auth:1.2.0'
}
并添加Fabric存储库
allprojects {
repositories {
// ...
maven { url 'https://maven.fabric.io/public' }
}
}
现在,他们希望我们放置这些代码片段并不完全清楚,但“依赖关系”位于App级别build.gradle文件中,“allprojects”部分位于Project级别build.gradle文件中。
答案 2 :(得分:5)
扩展@Hemant Menon的答案,回答@ Pheonix的问题。
将“repositories”内的“allprojects”和“buildscript”内的以下行添加到Project Level build.gradle文件中:
maven {
url 'https://maven.fabric.io/public'
}
所以文件看起来像:
buildscript {
repositories {
[...]
maven {
url 'https://maven.fabric.io/public'
}
}
}
allprojects {
repositories {
[...]
maven {
url 'https://maven.fabric.io/public'
}
}
}
[...]
此外,您还必须将以下行添加到应用的清单文件中:
tools:replace="android:supportsRtl"
所以它看起来像:
<?xml version="1.0" encoding="utf-8"?>
<manifest
[...]
xmlns:tools="http://schemas.android.com/tools" >
<application
[...]
tools:replace="android:supportsRtl">
<activity>
[...]
</activity>
</application>
</manifest>
答案 3 :(得分:3)
添加以下行:
maven {
url 'https://maven.fabric.io/public'
}
build / gradle文件中的buildscript和allprojects下的内部存储库。
答案 4 :(得分:3)
在Android Manifest文件中, 设置android:supportsRtl 从“真实”到“虚假”
android:supportsRtl =“false”
答案 5 :(得分:2)
在我的情况下,我做了我添加的两件事,
maven {
url 'https://maven.fabric.io/public'
}
和
android:supportsRtl="false"
效果很好。
答案 6 :(得分:0)
改为使用它。它们是每个firebaseui组件的最新版本。
// FirebaseUI for Firebase Realtime Database
implementation 'com.firebaseui:firebase-ui-database:5.0.0'
// FirebaseUI for Cloud Firestore
implementation 'com.firebaseui:firebase-ui-firestore:5.0.0'
// FirebaseUI for Firebase Auth
implementation 'com.firebaseui:firebase-ui-auth:5.0.0'
// FirebaseUI for Cloud Storage
implementation 'com.firebaseui:firebase-ui-storage:5.0.0'