6

Nach der Aktualisierung von Android Studio von Canary 3 bis Canary 4, wird der folgende Fehler zur Build-Zeit geworfen.Android Abhängigkeit hat verschiedene Version für die Kompilierung und Laufzeit

Android dependency 'com.android.support:support-support-v4' has different version for the compile (25.2.0) and runtime (26.0.0-beta2) classpath. You should manually set the same version via DependencyResolution.

lief ich eine komplette Suche im gesamten Projekt und die Version 25.1.0 nicht ist, wo verwendet.

App-build.gradle

android { 
compileSdkVersion 26 
buildToolsVersion '26.0.0' 


defaultConfig { 
    applicationId "com.xxx.xxxx" 
    minSdkVersion 14 
    targetSdkVersion 
    versionCode 1 
    versionName "1.0" 
    multiDexEnabled true 

} 


buildTypes { 
    debug { 
     debuggable true 
    } 
    release { 
     debuggable false 
     minifyEnabled true 
     shrinkResources true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 

    lintOptions { 
     abortOnError false 
    } 

}} 
dependencies { 
implementation fileTree(dir: 'libs', include: ['*.jar']) 
testImplementation 'junit:junit:4.12' 
implementation project(':core') 
implementation com.google.android.gms:play-services-gcm:9.0.0' 

implementation('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
    transitive = true 
} 
implementation 'com.android.support:multidex:1.0.1' 
implementation 'com.flurry.android:analytics:7.0.0' 
annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0' 
implementation 'com.jakewharton:butterknife:8.6.0' 
implementation 'com.android.support.constraint:constraint-layout:1.0.2' 
} 

Bibliothek-build.gradle:

apply plugin: 'com.android.library' 
android { 
compileSdkVersion 26 
buildToolsVersion '26.0.0' 

defaultConfig { 
    minSdkVersion 14 
    targetSdkVersion 
    versionCode 1 
    versionName "1.0" 
} 

} 

dependencies { 
implementation fileTree(dir: 'libs', include: ['*.jar']) 
implementation files('libs/model.jar') 
testImplementation 'junit:junit:4.12' 
implementation 'com.android.support:percent:26.0.0-beta2' 
implementation 'com.android.support:appcompat-v7:26.0.0-beta2' 
implementation 'com.android.support:support-core-utils:26.0.0-beta2' 

implementation 'com.squareup.retrofit2:retrofit:2.0.2' 
implementation 'com.squareup.picasso:picasso:2.4.0' 
implementation 'com.squareup.retrofit2:converter-gson:2.0.2' 
implementation 'com.squareup.okhttp3:logging-interceptor:3.2.0' 
implementation 'uk.co.chrisjenx:calligraphy:2.2.0' 
implementation 'com.google.code.gson:gson:2.2.4' 
implementation 'com.android.support:design:26.0.0-beta2' 
implementation 'com.github.PhilJay:MPAndroidChart:v3.0.1' 

} 

Hinweis: Projekt war der Bau fein in Canary 3

Antwort

3

sollten Sie in der Lage zu sehen, genau, welche Abhängigkeit in der ungeraden versi zieht auf als transitive Abhängigkeit von dem richtigen gradle -q dependencies Befehl für Ihr Projekt läuft wie hier beschrieben:

https://docs.gradle.org/current/userguide/userguide_single.html#sec:listing_dependencies

Nach unten Sie verfolgen, was es in zerren, können Sie ein auf diese spezifische Abhängigkeit in Ihrer gradle Datei ausschließen hinzufügen mit etwas wie:

implementation("XXXXX") { 
    exclude group: 'com.android.support', module: 'support-compat' 
} 
+0

Hallo, ich lief die gradle Abhängigkeit Befehl und ich bin Entsendung Screenshot url hier imgur.com/dL35BaN. Ich verwende Firebase nie in meinem Projekt. Diese Zeile in gcm hinzugefügt, hat es nicht funktioniert, obwohl – DroidLearner

+0

@DroidLearner Ich kann etwas fehlen, aber ich sehe keinen Hinweis auf com.android.support:support-compat in dem Screenshot, den Sie gepostet. Außerdem gibt es eine Warnung in diesem Screenshot, die sich auf eine 'Kompilier'-Konfiguration bezieht, die ich in Ihrer GRADLE-Datei im OP nicht sehe. es ist wahrscheinlich, dass es aus dem Kern-Submodul kommt. Können Sie die relevanten Informationen von dort aus veröffentlichen? – jdonmoyer

+0

Hallo, posten Sie die gesamten Gradle-Dateien mit Abhängigkeitsbaum hier .. App Gradle-Datei -> https://gist.github.com/anonymous/93affc0d75eb96b59f9fde51332b9716 Core Gradle-Datei -> https://gist.github.com/ anonymous/5c85031f26ff766109061ab1f00b833d Abhängigkeitsbaum -> https://gist.github.com/anonymous/71dd33b6fa4dc63dd357889e8aff01ee Hoffe das hilft. – DroidLearner

5

Ich hatte den gleichen Fehler, was mein Problem zu lösen war. In meiner Bibliothek anstelle der Kompilierung oder Implementierung verwende ich "api". Also am Ende meiner Abhängigkeiten:

dependencies { 
api fileTree(dir: 'libs', include: ['*.jar']) 
api files('libs/model.jar') 
testApi 'junit:junit:4.12' 
api 'com.android.support:percent:26.0.0-beta2' 
api 'com.android.support:appcompat-v7:26.0.0-beta2' 
api 'com.android.support:support-core-utils:26.0.0-beta2' 

api 'com.squareup.retrofit2:retrofit:2.0.2' 
api 'com.squareup.picasso:picasso:2.4.0' 
api 'com.squareup.retrofit2:converter-gson:2.0.2' 
api 'com.squareup.okhttp3:logging-interceptor:3.2.0' 
api 'uk.co.chrisjenx:calligraphy:2.2.0' 
api 'com.google.code.gson:gson:2.2.4' 
api 'com.android.support:design:26.0.0-beta2' 
api 'com.github.PhilJay:MPAndroidChart:v3.0.1' 
} 

Sie können weitere Informationen über "api", "Umsetzung" in diesem Link https://stackoverflow.com/a/44493379/3479489

+0

Das hat mir sehr geholfen, danke. – sector11

1

Verwendung diesen Code in Ihren buildscript (build.gradle root)

finden
subprojects { 
    project.configurations.all { 
    resolutionStrategy.eachDependency { details -> 
     if (details.requested.group == 'com.android.support' 
       && !details.requested.name.contains('multidex')) { 
      details.useVersion "version which should be used - in your case 26.0.0-beta2" 
     } 
    } 
    } 
} 

Mit besten Grüßen, Eddi

Verwandte Themen