42159


`build.gradle`でエラーが出て，実行することができません．以下に`build.geadleのdependency{}`の内容を記します．

[code]

    dependencies {
        implementation 'com.android.support:support-v4:26.1.0'
        implementation 'com.android.support:appcompat-v7:26.1.0'
        implementation 'com.android.support:design:26.1.0'
        implementation 'com.android.support:cardview-v7:26.1.0'
        implementation ('com.facebook.android:facebook-android-sdk:4.29.0') {
            exclude group: 'com.android.support', module: 'support-v4'
            exclude group: 'com.android.support', module: 'appcompat-v7'
            exclude group: 'com.android.support', module: 'design'
            exclude group: 'com.android.support', module: 'cardview-v7'
        }
        implementation 'com.android.support.constraint:constraint-layout:1.0.2'
        implementation fileTree(include: ['*.jar'], dir: 'libs')
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
            exclude group: 'com.android.support', module: 'support-annotations'
        })
        testCompile 'junit:junit:4.12'
        implementation 'com.squareup.picasso:picasso:2.5.2'
        implementation 'com.squareup.retrofit2:retrofit:2.3.0'
        implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
        implementation 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
        implementation 'io.reactivex.rxjava2:rxjava:2.1.3'
        implementation 'io.reactivex.rxjava2:rxandroid:2.0.1'
        implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.2.10"
        implementation 'com.jakewharton:kotterknife:0.1.0-SNAPSHOT'
        implementation 'com.github.d-max:spots-dialog:0.7@aar'
    }
    
[/code]

エラー内容は以下の通りです.

[code]

    All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 27.0.1, 26.1.0. Examples include com.android.support:customtabs:27.0.1 and com.android.support:animated-vector-drawable:26.1.0 less... (⌘F1) 
    There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion.)
    
[/code]

<https://qiita.com/najeira/items/ce774acf14a0cedf8f7a>  
上記の記事を参考にしてみましたがエラーが出続けます．  
また，このエラーはfacebook-sdkを追加した時から出ています．

[![エラー内容](https://i.stack.imgur.com/QCBhm.png)](https://i.stack.imgur.com/QCBhm.png)

何か解決する手段はないでしょうか．  
お忙しいところ恐縮ですが，よろしくお願いします．


CC BY-SA 3.0
2017-12-16T06:29:33.960
40321
2018-03-06T06:58:38.730
2017-12-16T07:12:17.247
3060
19574
question
android android-studio facebook-api android-support-library
AndroidStudioのbuild.gradle(app)にて


## 原因

依存関係を解消しようとして、以下の同じライブラリを異なるバージョンで使用しようとしています。

[code]

    com.android.support:customtabs:27.0.1
    com.android.support:animated-vector-drawable:26.1.0
    
[/code]

`com.android.support`ライブラリの27.0.1と26.1.0が依存関係に含まれており、どうするべきかAndroid
Studioが判断できない状態です。

質問に記載されている内容と参考記事からすると、推測ですが

[code]

    com.android.support:appcompat-v7:26.1.0
     -> com.android.support:animated-vector-drawable:26.1.0
    
    com.facebook.android:facebook-android-sdk:4.29.0
     -> com.android.support:customtabs:27.0.1
    
[/code]

のように依存関係が発生しているかと思います。  
Android Studioでのgradleの依存関係は

[code]

    ./gradlew :app:dependencies
    
[/code]

を実行すると詳細が確認できます。

## 対処

環境に応じて以下のような解決方法が考えられます。

  1. 依存関係をexclude指定によって除外する
  2. ライブラリを同じバージョンで使用する

1.については参考にされているURLで対処している方法です。  
質問文にある`build.gradle`には`com.android.support:customtabs`のexclude指定が抜けているように見えますので追記することで解決できそうです。

[code]

    implementation ('com.facebook.android:facebook-android-sdk:4.29.0') {
        〜
        exclude group: 'com.android.support', module: 'customtabs'
        〜
    }
    
[/code]

ただしこの方法は`com.facebook.android:facebook-android-
sdk`が必要としているライブラリのバージョン指定(27.0.1)を無視することになるため、`com.facebook.android:facebook-
android-sdk`で何かしら問題が発生する可能性があります。

2.については`com.android.support`ライブラリを全て27.0.1で使用するようにすればエラーが発生しなくなるかと思います。  
ただし、質問文からはどのような指定でAndroidアプリをビルドしようとしているかわかりませんので、build.gradleの他の指定によっては別のエラーが発生するかもしれません。

[code]

    implementation 'com.android.support:support-v4:27.0.1'
    implementation 'com.android.support:appcompat-v7:27.0.1'
    implementation 'com.android.support:design:27.0.1'
    implementation 'com.android.support:cardview-v7:27.0.1'
    
[/code]


CC BY-SA 3.0
2018-03-06T06:58:38.730
42159
2018-03-06T06:58:38.730
20272
40321
answer