web-dev-qa-db-ja.com

Fusion Location Providerの再生サービスを追加するときにappcompat v7:26. +エラーをコンパイルします

私は問題を抱えており、可能な質問と回答の重複を調べましたが、この質問には他の人が答えていないので、ここで質問します。

フュージョンロケーションプロバイダーを使用するようにPlayサービスを更新しましたが、現在、gradleのappcompatにエラーが表示されています。

そのため、新しいプロジェクトを作成し、その新しいプロジェクトのbuild.gradleを確認し、まったく同じappcompatを使用していますが、プロジェクトにエラーが表示されています。

apply plugin: 'com.Android.application'

Android {
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig {
    applicationId "au.com.itmobilesupport.sqltwo"
    minSdkVersion 17
    targetSdkVersion 26
    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(include: ['*.jar'], dir: 'libs')
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:26.+'
compile 'com.Android.support:recyclerview-v7:26.+'
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
testCompile 'junit:junit:4.12'
compile 'com.google.Android.gms:play-services-maps:11.0.0'
compile 'com.google.Android.gms:play-services:11.0.1'
}

エラーを示しているこの行:

compile 'com.Android.support:appcompat-v7:26.+'

しかし、新しいプロジェクトでは問題ありません。エラーが発生するのはなぜですか?

更新:

これらの2行を削除すると、エラーはなくなります。

compile 'com.google.Android.gms:play-services-maps:11.0.0'
compile 'com.google.Android.gms:play-services:11.0.1'

しかし、私はそれらが必要なので、まだエラーがあります。

11
timv

最後に、同様の質問に対する ZeroOneの答え の助けを借りて問題を解決しました。

ZeroOnesの答えを見るようになったのは、Googleが理由を教えてくれたが、エラーとしてではなかったからです。私の問題は、次の行があまりにも包括的であり、アプリを不必要に大きくする多くの余分な依存関係が追加されたことでした。

compile 'com.google.Android.gms:play-services:11.0.1'

もっと具体的にする必要があるだけで、エラーは消えました。

これが最終的なグラドルです。

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 26
    buildToolsVersion "26.0.0"
    defaultConfig {
        applicationId "au.com.itmobilesupport.sqltwo"
        minSdkVersion 17
        targetSdkVersion 26
        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(include: ['*.jar'], dir: 'libs')
    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:26.+'
    compile 'com.Android.support:recyclerview-v7:26.+'
    compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
    testCompile 'junit:junit:4.12'
    compile 'com.google.Android.gms:play-services-maps:11.0.1'
    compile 'com.google.Android.gms:play-services-location:11.0.1'
}

そして、これは上記を次のように変更する特定の行です。

compile 'com.google.Android.gms:play-services-location:11.0.1'

同じ問題に出くわした人の助けになることを願っています。

5
timv
5
Mehran Zamani

'com.google.Android.gms:play-services:11.0.1'をコンパイルするのではなく、 'com.google.Android.gms:play-services-location:11.0.1'を使用してより具体的にすると、プロジェクトも保存され、たくさんの人。