Error:Failed to resolve: com.twitter.sdk.android:twitter:2.3.0 - Android Studio

Error:Failed to resolve: com.twitter.sdk.android:twitter:2.3.0 - Android Studio

我在日志猫中收到此错误

Error:Failed to resolve: com.twitter.sdk.android:twitter:2.3.0

当我尝试添加此依赖项时:

compile 'com.firebaseui:firebase-ui:1.1.1'

谁能帮帮我,我不确定我做错了什么。这是 link 我从中获得依赖项的地方:https://github.com/firebase/FirebaseUI-Android。附带一提,我没有在我的应用程序中使用 Twitter 登录或与 Twitter 的任何类型的交互,所以我不确定为什么在放置该依赖项后同步我的 gradle 时会出现该错误。

添加这一行:

maven { url 'https://maven.fabric.io/public' }

build/gradle 文件中 buildscript 和 allprojects 下的内部存储库。

您项目的 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'
        }
    }
}

在Android清单文件中, 设置 android:supportsRtl 从 "true" 到 "false"

android:supportsRtl="false"

扩展@Hemant Menon 的回答,并回答@Pheonix 的问题。

将 "repositories"、"allprojects" 和 "buildscript" 内的以下行添加到项目级别 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>

让我们从原因开始 - 这是来自 Firebase 身份验证文档: "Firebase Authentication provides backend services, easy-to-use SDKs, and ready-made UI libraries to authenticate users to your app. It supports authentication using passwords, popular federated identity providers like Google, Facebook and Twitter, and more."

因此,通过使用 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 库的单一目标

因此,由于它将所有三个库合二为一,让我们去阅读每个库的自述文件。

可以在主页上找到它们的文件夹 - database、auth、storage

https://github.com/firebase/FirebaseUI-Android

存储和数据库自述文件是关于如何在 Java 代码中使用它们的,没有其他内容。

但是 Auth README.md 有一些关于配置的东西——因为我们在这里谈论配置: https://github.com/firebase/FirebaseUI-Android/tree/master/auth

配置

作为先决条件ui站点,请确保您的应用程序配置为与 Firebase 一起使用:请参阅 Firebase 文档。然后,添加 FirebaseUI 身份验证库依赖项。如果你的项目使用Gradle,添加依赖:

dependencies {
    // ...
    compile 'com.firebaseui:firebase-ui-auth:1.2.0'
}

并添加 Fabric 存储库

allprojects {
    repositories {
        // ...
        maven { url 'https://maven.fabric.io/public' }
    }
}

现在,还不是很清楚,他们想让我们把这些代码片段放在哪里,但是 "dependencies" 在 App 级别 build.gradle 文件中, "allprojects" 部分在项目级别 build.gradle 文件。

就我而言,我添加了两件事,

maven { 
    url 'https://maven.fabric.io/public' 
 }

android:supportsRtl="false"

它完美运行。

改用这个。它们是每个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'