【问题标题】:After Adding Facebook Android SDK dependencies i'm getting this error添加 Facebook Android SDK 依赖项后,我收到此错误
【发布时间】:2017-09-01 12:55:33
【问题描述】:

添加Android Facebook SDK依赖后

compile 'com.facebook.android:facebook-android-sdk:4.21.0'

我遇到了错误

compile 'com.android.support:appcompat-v7:25.3.1'

但项目运行良好。

所有 com.android.support 库必须使用完全相同的版本 规范(混合版本可能导致运行时崩溃)。成立 版本 25.3.1、25.0.0。例子包括 com.android.support:animated-vector-drawable:25.3.1 和 com.android.support:cardview-v7:25.0.0 少... (Ctrl+F1)

有一些库或工具和库的组合, 不兼容,或者可能导致错误。一种这样的不兼容性是 使用不支持的 Android 支持库版本进行编译 最新版本(或者特别是低于您的 targetSdkVersion。)

Build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    repositories {
        mavenCentral()
    }

    defaultConfig {
        applicationId "sujeet.raj.com"
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.3.1'

    testCompile 'junit:junit:4.12'

    compile 'com.facebook.android:facebook-android-sdk:4.21.0'
}

【问题讨论】:

  • compile 'com.android.support:cardview-v7:25.3.1' compile 'com.android.support:customtabs:25.3.1' 添加这两行
  • 这是一个警告。降级compile 'com.android.support:appcompat-v7:25.2.0'
  • 是的@AwaisMajeed,项目运行良好。

标签: android sdk dependencies build.gradle facebook-sdk-4.0


【解决方案1】:

您可以使用以下解决方案之一解决此问题:original here

运行 Gradle 依赖关系报告以查看完整的依赖关系树是什么。从那里,您将看到您的哪个库要求使用不同版本的 Android 支持库。无论它要求什么,你都可以直接用 25.2.0 版本要求,或者使用 Gradle 的其他冲突解决方法来安排获得相同的版本。

运行:

./gradlew -q dependencies <module-name>:dependencies --configuration compile

例子:

./gradlew -q dependencies app:dependencies --configuration compile

对我来说,删除 com.google.android.gms:play-services:10.2.0 后错误消失了

并且只包括 com.google.android.gms:play-services-location:10.2.0 和 com.google.android.gms:play-services-maps:10.2.0 因为它们是仅有的两个播放服务我用。

我认为 gms:play-services 依赖于支持库的一些旧组件,因此我们需要自己显式添加它们。

【讨论】:

【解决方案2】:

这个问题是由于下载了不同版本的依赖文件造成的。

明确地将其放入 gradle 文件并再次同步。

compile 'com.android.support:animated-vector-drawable:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'

在此目录下,您可以找到正在下载的这些库

Project Files/Your project/.idea/libraries

【讨论】:

  • 使用facebook-android-sdk:4.24.0 我必须使用customtabs 代替animated-vector-drawable
  • @sosite 你是怎么想出来的?如果 Facebook SDK 在内部告诉它下载旧版本,如何手动列出要下载的支持库组件的版本?
  • 我使用了最新的包...这些步骤对我有用
【解决方案3】:

也许我为时已晚,但好吧,在这里尝试提供帮助......这就是我解决它的方法。

打开

project/your project/.idea/libraries

然后前往 facebook sdk 你可以看到这个

library name="facebook-android-sdk-4.22.1"

在 build.gradle 中使用数字“4.22.1”

我就是这样做的,我自己也是初学者。

【讨论】:

    【解决方案4】:

    不要问我为什么,但这为我解决了问题:

    android {
    /.../
        configurations.all {
            resolutionStrategy.force 'com.android.support:cardview-v7:27.1.0'
            resolutionStrategy.force 'com.android.support:animated-verctor-drawable:27.1.0'
            resolutionStrategy.force 'com.android.support:customtabs:27.1.0'
            resolutionStrategy.force 'com.google.android.gms:play-services-base:12.0.1'
            resolutionStrategy.force 'com.google.android.gms:play-services-auth:12.0.1'
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多