Abhängigkeit für ': app @ debug / compileClasspath' konnte nicht aufgelöst werden: Konnte nicht aufgelöst werden

74

Das neu installierte Android Studio 3.1.3 gibt beim Erstellen eines neuen Projekts und beim erstmaligen Kompilieren seltsame Abhängigkeitsfehler aus.

Eine ähnliche Frage , die nicht zur Lösung des Problems beigetragen hat.

Ereignisprotokolle:

Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details


Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details


Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details


Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details


Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details


Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details


Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details


Unable to resolve dependency for ':app@release/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details


Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve com.android.support:appcompat-v7:28.0.0-alpha3.
Open File
Show Details


Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Could not resolve com.android.support.constraint:constraint-layout:1.1.2.
Open File
Show Details

Bildschirmfoto:

TestProject

Dieses Problem ist mir mehrmals passiert und das Erzwingen von https oder http hat es auch nicht gelöst

Zulqurnain Jutt
quelle
Können Sie Ihre build.gradleDateien sowohl für die oberste Ebene als auch für die Modulebene veröffentlichen?
Shizhen
Irgendeine Lösung für dein Problem?
Code_Life
Hallo, wie hast du deinen Fehler behoben? Ich habe gesehen, dass Sie unten keine Antworten akzeptiert haben. Also habe ich alle unten genannten möglichen Lösungen ausprobiert, aber keiner von ihnen hat mir geholfen.
Lokesh Pandey
1
@Lokesh es war ein Fehler in, com.android.support:appcompat-v7:28.0.0-alpha3also habe ich es geändert, com.android.support:appcompat-v7:28.0.0es hat gut funktioniert
Zulqurnain Jutt
@ZulqurnainJutt Da bin ich mir nicht sicher. Aber ich arbeite in einer eingeschränkten Umgebung. Also habe ich einfach alles in offener Internetverbindung ausgeführt. Und es funktioniert gut.
Lokesh Pandey

Antworten:

53

Möglicherweise importieren Sie Application anstelle von Module . Nun, Sie können es auch im Gradle des Moduls ändern.

Veränderung

apply plugin: 'com.android.application'

zu

apply plugin: 'com.android.library'

Sie müssen auch applicationId aus dem Gradle entfernen .

Shahbaz Hashmi
quelle
Warum ich das tun muss. Irgendeine Erklärung?
CodeWithVikas
1
@CodeWithVikas Wie ich in meiner Antwort sagte, könnte es Ihr Problem sein. Wenn nicht, ignorieren Sie diese Antwort, Sie müssen dies nicht tun.
Shahbaz Hashmi
3
Komisch, wie sich Sof zu einem Versuch entwickelte, warum und wie. Solche Hinweise gehören zu Kommentaren, die ich glaube.
Kolboc
"Plugin anwenden" bestimmt, welches Gradle-Plugin zum Kompilieren Ihres Codes verwendet wird. Ich denke, Sie können mehrere .application-Projekte haben und sie einzeln ausführen, aber sie können nicht aufeinander verweisen, es sei denn, sie sind als Bibliotheken kompiliert (ich habe nicht zu viel googelt): developer.android.com/studio/projects/android -bibliothek Aber es ist wirklich traurig, dass eine Antwort ohne Erklärung so viele positive Stimmen bekommt.
Heinzlmaen
@Heinzlmaen Jeder weiß, was "Apply Plugin" macht und man kann je nach Anforderung mehrere Anwendungsprojekte haben. Trotzdem finden die Leute diese Antwort hilfreich.
Shahbaz Hashmi
15

Ich habe gerade herausgefunden, wie dieser Gradle-Fehler behoben werden kann. Befolgen Sie die folgenden Schritte.

  1. Gehen Sie zu "Datei".
  2. Klicken Sie auf Cache / Neustart ungültig machen.
  3. Klicken Sie erneut auf Cache / Neustart ungültig machen (im Dialoge-Fenster).

Lassen Sie den Gradle ohne Unterbrechung bauen.

Vielen Dank! Grüße, hoffe das wird helfen.

Prateek Bhandari
quelle
2
Leute müssen dies tun, bevor sie Ihre Codezeilen bearbeiten. 1. Dinge 1.
Malith Ileperuma
12

Ich denke, die Probleme sind auf Folgendes zurückzuführen: Die Internetverbindung mit u war nicht verfügbar, daher hat Android Studio Sie gebeten, die "Offline-Arbeit" zu aktivieren, und Sie haben sie gerade aktiviert

Um dies zu beheben:

  • Datei
  • die Einstellungen
  • Erstellen, Ausführen, Bereitstellen
  • Gradle
  • Deaktivieren Sie die Offline-Arbeit

Warum kann das Deaktivieren der Offline-Arbeit das Problem lösen, da im Gradle manchmal einige Abhängigkeiten aktualisiert werden müssen (diejenigen, die '+' enthalten), sodass eine Internetverbindung erforderlich ist.

Mohammad Elsayed
quelle
7
  1. Versuchen Sie "Datei" -> "Caches ungültig machen / neu starten ..."
  2. Versuchen Sie, Ihr .gradleund .idea-Verzeichnis unter Ihrem Projektstammverzeichnis zu bereinigen .
  3. Versuchen Sie, das Google Maven-Repository hinzuzufügen und das Projekt zu synchronisieren

    buildscript {
        repositories {
            jcenter()
            google()
            maven {
               url "https://maven.google.com"
            }
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.3'
        }
    }
    
    allprojects {
        repositories {
            google()
            jcenter()
            maven {
               url "https://maven.google.com"
            }
        }
    }
    
  4. Wenn Sie das Android Gradle Plugin 3.1.3 verwenden, sollten Sie sicherstellen, dass Ihre Gradle Wrapper-Version 4.4 ist. Suchen gradle-wrapper.propertiesund ändern Sie es im Stammverzeichnis Ihres Projekts wie folgt.

    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists
    distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
    
shizhen
quelle
Das Hinzufügen von nur Google () und Maven {} Repository funktionierte für mich
CodeWithVikas
5

Ich hatte dieses Problem mit der Aktivierung des Offline-Modus. Ich habe den Offline-Modus deaktiviert und synchronisiert.

  • Öffnen Sie die Einstellungen, indem Sie auf klicken File > Settings.
  • Klicken Sie im linken Bereich auf Build, Execution, Deployment > Gradle.
  • Deaktivieren Sie das Kontrollkästchen Offline work.
  • Übernehmen Sie die Änderungen und synchronisieren Sie das Projekt erneut.
Khemraj
quelle
Kannst du sagen, was die Abhängigkeit ist, wird nicht aufgelöst.
Khemraj
Es war ein Gradle-Modul in unserem Android-Projekt, das wir selbst erstellt haben.
Igor Ganapolsky
Es ist ein lokales Bibliotheksmodul? oder es ist Abhängigkeit URL in Gradle.
Khemraj
Lokales Bibliotheksmodul
IgorGanapolsky
Ich hatte vor einigen Tagen das gleiche Problem. Ich erinnere mich nicht genau, was ich getan habe, aber Sie sollten versuchen, .idea, .gradle zu löschen, dir zu erstellen und erneut zu synchronisieren. Das können wir tun.
Khemraj
5

Ich weiß, dass es sehr spät ist, aber ich denke, es kann jemandem helfen, sein Problem zu lösen.

In meinem Fall trat dies auf, weil compileSdkVersion und targetSdkVersion auf 29 gesetzt waren, während beim Überprüfen meines SDK-Managers angezeigt wurde, dass das Paket teilweise installiert ist. Während SDK Version 28 vollständig installiert wurde. Ich habe meine compileSdkVersion und targetSdkVersion zusammen mit den Support-Bibliotheken auf 28 geändert.

Früher: compileSdkVersion 29 targetSdkVersion 29 Implementierung 'com.android.support:appcompat-v7:29.+' Implementierung 'com.android.support:design:29.+'

Nach der Änderung: compileSdkVersion 28 targetSdkVersion 28 Implementierung 'com.android.support:appcompat-v7:28.+' Implementierung 'com.android.support:design:28.+'

Nach diesen Änderungen wirkte es wie ein Zauber.

manish bansal
quelle
1
Vielen Dank, Manish, Sie haben Recht, es gibt keine Unterstützungsbibliotheken mit einer Version höher als 28 aufgrund der Migration auf AndroidX.
Ernest
Für jeden im Jahr 2020 ist dies die Antwort, die Sie wollen
Chiguireitor
5

@ Shizhen Antwort hat in meinem Fall nicht funktioniert.

Verbringen Sie mehr als einen Tag und haben Sie endlich eine funktionierende Lösung gefunden. Ich war in einer Büroumgebung, daher wird meine Gradle-Datei durch das Ausprobieren verschiedener Methoden beschädigt. Also habe ich alle Proxy- und Port-Info-Formulare aus der folgenden Datei entfernt und die Dinge haben funktioniert.

Benutzer -> .gradle -> gradle.properties

Zusätzlich habe ich "Proxy-Einstellungen automatisch erkennen" unter Android Studio aktiviert -> Einstellungen -> HTTP-Proxy für Netzwerk und Studio erkennt die Netzwerkkonfiguration automatisch.

Sondergutschrift

Ebin Joy
quelle
2

Dieses Problem ist mir schon mehrmals passiert. Normalerweise hat eine dieser 4 Lösungen mein Problem gelöst, aber sie können Ihr Problem lösen oder auch nicht.

1) git pull origin master

2) Erstellen -> Projekt bereinigen

3) "Datei" -> "Caches ungültig machen / neu starten ..." wie erwähnt .

4) Wenn keine der oben genannten Maßnahmen Ihr Problem gelöst hat und Sie zu 110% sicher sind, dass Sie Ihre Arbeit gespeichert haben (ich schlage vor git stash save "comment") oder nicht daran denken , sie zu überschreiben , versuchen Sie:

git reset --hard origin master

Navid Vafaei
quelle
1

Ich teile diese Antwort nur, weil ich ein ähnliches Problem hatte.

Am Ende wurde ein Fehler verursacht, weil ich versehentlich die geändert habe fileTree. In meinem Fall habe ich Folgendes behoben:

// implementation or compile
implementation fileTree(include: ['*.jar'])

zu

// implementation or compile
implementation fileTree(include: ['*.jar'], dir: 'libs')
W0rmH0le
quelle
1

Ich habe dieses Gradle-Caching-Problem wie unten behoben.

Falls jemand ein MacBook verwendet, sind die folgenden Schritte aufgeführt, mit denen ich dieses Problem behoben habe.

  1. Es gibt einen versteckten Gradle-Ordner. Mit dem folgenden Befehl können wir den versteckten Gradle-Ordner öffnen und die Datei gradle.properties entfernen

Verknüpfung (⌘ + shift + G) und geben Sie diese in das Popup-Fenster ein. ~/.gradle/Drücken Sie die Eingabetaste

zu entfernende Datei -> gradle.properties

  1. Gehen Sie dann zurück zum Android Studio und synchronisieren Sie Ihr Projekt mit Gradle-Dateien.
Rameshbabu
quelle
1
Großartig, du hast meine Zeit und mein Leben gerettet.:x
Mohammad Davari
1

Eine Möglichkeit habe ich nicht erwähnt gesehen. Wenn das Projekt, das Sie importieren, Android-Produktvarianten verwendet, liegt möglicherweise ein Fehler in Ihrem Projekt vor missingDimenstionStrategy.

Stellen Sie in Ihrem :app build.gradle(dem einen Code, der die Abhängigkeit nicht auflösen kann) sicher, dass Sie den spezifischen Geschmack des Produkts, von dem Sie abhängig sind, richtig eingestellt haben. Auf diese Weise können Sie alle Ihre spätere Abhängigkeit Code (e..g implementation, apiusw.) wissen , welche genauen Build es hängt davon ab ,

 defaultConfig {
        ...<snip unrelated>...

        // Ensure you specify the flavor you depend on!!
        // If dep has multiple flavor dimensions, you need to specify them all
        missingDimensionStrategy 'classpath', 'gms17'
    }
Hamy
quelle
1

FÜR JEDEN, DER DAS ERHÄLT, WENN SIE VERSUCHEN, IHRE EIGENEN ERSTELLTEN BIBLIOTHEKEN ZU IMPORTIEREN

Ich habe mit Kotlin Multiplatform- Bibliotheken gespielt und versucht, meine Bibliotheken mit jitpack zu veröffentlichen und sie dann in andere Projekte zu ziehen. Ich bin in den meisten Fällen neu und wusste nicht, dass ich PublishLibraryVariants zu meiner Android-Konfiguration in Gradle hinzufügen muss. Ich habe andere Tutorials befolgt, für die dies nicht erforderlich war, daher bin ich mir nicht sicher, warum Sie Kotlin MPP benötigen. Dies ist jedoch der Code. Sie könnten wahrscheinlich andere Varianten veröffentlichen, die Ihren Anforderungen entsprechen, aber dies scheinen die Standardanforderungen für die Erstellung mit einem Basisprojekt zu sein. Das () nach Android ist nicht unbedingt notwendig, aber das Standard-Skript kommt mit ihnen, also habe ich es verlassen. Der Code ist im Wesentlichen der gleiche für Kotlin oder Groovy DSL.

Im Gradle-Skript für die zu veröffentlichende Bibliothek

kotlin {
    android() {
        publishLibraryVariants("release", "debug")
        …
    }
    …
}

Chuck Mersereau
quelle
0

Ich konnte die Hauptursache des Problems nicht finden, habe jedoch eine Problemumgehung erhalten. Ich begann damit, meine Java-Home-Variable als solche festzulegen.

  • vi ~/.bash_profile (Dies gilt nur für Macs. Bash-Profile unterscheiden sich unter Linux.)
  • iGeben Sie den Buchstaben zum Einfügen ein und setzen Sie die Variable JAVA_HOME als solche
  • export JAVA_HOME=/Applications/Android\Studio.app/Contents/jre/jdk/Contents/Home/
  • Beenden Sie den vi-Editor mit und geben Sie escdann ein:wq
  • Starte den Computer neu
  • Voila! Ihre Android Studio-Projekte sollten ohne Bedenken erstellt werden
Edgar N.
quelle
0

In meinem Fall: Beim Einrichten von AS wurde mein Windows mit Proxy konfiguriert. Später trenne ich den Proxy und deaktiviere den Proxy in den AS-Einstellungen. In der Datei .gradle \ gradle.properties - proxy - present

Löschen Sie im Texteditor einfach die Proxy-Einstellungen aus dieser Datei

Alex
quelle
0

In meinem Fall habe ich Google Play-Dienste verwendet ... Ich erhöhe den gelösten Bibliotheksdienst

implementation 'com.google.android.gms:play-services-auth:16.0.0'

Der Google Play-Dienst muss in Bibliotheks- und App-Modulen identisch sein

Referenz

Ucdemir
quelle
0

Wie @Ebin Joy sagte: Wenn Ihre Gradle-Datei beschädigt wird, gibt es dafür eine einfache Lösung. Geben Sie die Proxy-Details wie im Bild gezeigt manuell an. dann bist du gut zu gehen. Diese Lösung funktioniert nur, wenn Sie geschlossene Netzwerke wie Büronetzwerke usw. verwenden.

Geben Sie hier die Bildbeschreibung ein

Harish Reddy
quelle
0

Frage ab Android Studio 3.5.2 für Windows noch relevant.

In meinem speziellen Anwendungsfall habe ich versucht, Gander ( https://github.com/Ashok-Varma/Gander ) zu meiner Liste der Abhängigkeiten hinzuzufügen, wenn ich immer wieder Kopfschmerzen bekomme.

Es stellt sich heraus, dass ich das JCenter-Zertifikat noch nicht in meiner cacertsDatei genehmigt habe . Ich gehe durch eine Firmenfirewall und musste dies mit Abhängigkeiten tun, die ich zu importieren versuche. Also, um dies zu tun:

  1. Stellen Sie sicher, dass Ihr Android Studio keinen Proxy durchlaufen muss.

  2. Exportieren Sie das Zertifikat, in das Sie Ihre Abhängigkeit erhalten (normalerweise nur JCenter).

  3. Fügen Sie das Zertifikat Ihrer cacertsDatei hinzu:

    keytool -import -alias [your-certificate-name] -keystore 'C:\Program Files\Java\jdk[version]\jre\lib\security\cacerts' -file [absolute\path\to\your\certificate].cer

  4. Starten Sie Android Studio neu

  5. Versuchen Sie es erneut.

Die Antwort basiert auf dieser: https://stackoverflow.com/a/26183328/4972380

Monica Aspiras Labbao
quelle
0

Wenn Sie jemals einen Proxy, ein VPN usw. verwendet haben (oder nicht, ich bin mir nicht sicher) ..... Dann kann Ihnen die folgende Lösung helfen ... Ich weiß nicht warum (und ob mir jemand sagen kann warum , Ich werde das zu schätzen wissen), aber es funktioniert perfekt. Probieren Sie es aus, wenn Sie sich über dieses Problem völlig verzweifelt fühlen .

Kommen Sie zu Ihrem Projekt und öffnen Sie gradle-wrapper.properties oder gradle.properties . Kommentieren Sie diese Codes zum Proxy aus:

#systemProp.http.nonProxyHosts=118.89.144.241|47.112.105.125
#systemProp.http.proxyHost=127.0.0.1
#systemProp.http.proxyPort=1081
#systemProp.https.nonProxyHosts=118.89.144.241|47.112.105.125
#systemProp.https.proxyHost=127.0.0.1
#systemProp.https.proxyPort=1081

Geben Sie hier die Bildbeschreibung ein

Dann könnte es funktionieren.

PS: Ich bin auf dieses Problem gestoßen , als ich versucht habe, die dataBinding-Bibliothek zu verwenden , und als ich den Code hinzugefügt habe

buildFeatures {
        dataBinding true
    }

Wie der Leitfaden mir mitteilte und das Projekt synchronisiert, wurde folgende Fehlermeldung angezeigt: "Abhängigkeit für ': app @ debug / compileClasspath' konnte nicht aufgelöst werden: Konnte nicht aufgelöst werden ......". Schließlich habe ich das getan, was ich oben beschrieben habe, und es ist mir gelungen. Was ich erlebe, kann Ihnen einen Hinweis geben, also poste ich die Lösung hier und hoffe, dass es helfen könnte.

vergeblich
quelle
0

Versuchen Sie, den Konfigurationstyp in der Abhängigkeitszeile hinzuzufügen. Zum Beispiel:

implementation project(path: ':some_module', **configuration: 'default'**)`
Djek-Grif
quelle
0

Leute, die über Offline-Arbeit antworten, sind aktiv. Aber es befand sich in meinem Fall an einer anderen Stelle. Um es im Menü der oberen Leiste zu finden, wählen Sie

  1. Ansicht / Tool Windows / Graddle
  2. Google die Offline-Schaltfläche, wenn aktiv. Es ist ein kleines Rechteck mit zwei zentrierten Schrägstrichen

Außerdem können Sie das Hilfemenü im Menü der oberen Leiste anklicken und "gradle" schreiben, um die Positionen vorzuschlagen.

jan4co
quelle