错误:无法解决:com.twitter.sdk.android:twitter:2.3.0 - Android Studio

时间:2017-01-15 08:35:09

标签: android twitter firebase dependencies firebaseui

我在日志中遇到此错误

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时出现该错误。

7 个答案:

答案 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'