Gradle Build Android-Projekt "Fehler konnte nicht alle Abhängigkeiten beheben"


79

Ich versuche mein erstes Projekt mit Gradle zu erstellen und denke, dass meine Gradle-Dateien und -Einstellungen korrekt sind.

Ich verwende nur ein Modul und unterstütze V4 + AppCompatBar-Bibliotheken.

Project - build.gradle

allprojects {
    repositories {
        mavenCentral()
    }
}

Project - settings.gradle

include ':AssignmentTempos21'

Hauptmodul - build.gradle

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android'

repositories {
    mavenCentral()
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 17
    }
}

dependencies {
    compile "com.android.support:support-v4:18.0.+"
    compile "com.android.support:appcompat-v7:18.0.+"
}

Konsolenausgabe mit dem Flag -i:

MacBook-Air-de-Cesar-2:AssignmentTempos21 menor$ ./gradlew -i clean assemble
Starting Build
Settings evaluated using settings file '/Users/menor/workspace_android/AssignmentTempos21/settings.gradle'.
Projects loaded. Root project using build file '/Users/menor/workspace_android/AssignmentTempos21/build.gradle'.
Included projects: [root project 'AssignmentTempos21', project ':AssignmentTempos21']
Evaluating root project 'AssignmentTempos21' using build file '/Users/menor/workspace_android/AssignmentTempos21/build.gradle'.
Compiling build file '/Users/menor/workspace_android/AssignmentTempos21/build.gradle' using BuildScriptClasspathScriptTransformer.
Compiling build file '/Users/menor/workspace_android/AssignmentTempos21/build.gradle' using BuildScriptTransformer.
Evaluating project ':AssignmentTempos21' using build file '/Users/menor/workspace_android/AssignmentTempos21/AssignmentTempos21/build.gradle'.
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/support-v4/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/maven-metadata.xml]
Resource missing. [HTTP GET: http://repo1.maven.org/maven2/com/android/support/appcompat-v7/]

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':AssignmentTempos21'.
> Failed to notify project evaluation listener.
   > Could not resolve all dependencies for configuration ':AssignmentTempos21:_DebugCompile'.
      > Could not find any version that matches com.android.support:support-v4:18.0.+.
        Required by:
            AssignmentTempos21:AssignmentTempos21:unspecified
      > Could not find any version that matches com.android.support:appcompat-v7:18.0.+.
        Required by:
            AssignmentTempos21:AssignmentTempos21:unspecified

* Try:
Run with --stacktrace option to get the stack trace. Run with --debug option to get more log output.

BUILD FAILED

Total time: 40.787 secs

Bitte gehen Sie zu dieser Ausgabe und markieren Sie sie. Es scheint, dass es viele Probleme gibt, da viele Bibliotheken nicht in jCenter veröffentlicht wurden.
Patricio Sard

Antworten:


95

Wie Peter sagt, werden sie nicht in Maven Central sein

Laden Sie vom Android SDK-Manager das 'Android Support Repository' herunter, und ein Maven-Repo der Support-Bibliotheken wird in Ihr Android SDK-Verzeichnis heruntergeladen (siehe Ordner 'Extras').

Um die Bibliotheken in Ihrem lokalen .m2-Repository bereitzustellen, können Sie maven-android-sdk-deployer verwenden

2017 bearbeiten:

Sie können jetzt auf das Google Online M2-Repo verweisen

repositories {
google()
jcenter()
}

12
Das Herunterladen des "Android Support Repository" vom "Android SDK Manager" löst dieses Problem, das ich in Android Studio 0.4.3-Projekten hatte, definitiv. Es bleibt nur ein wenig schade über eine Abwertungsnachricht von Gradle, aber dies ist eine andere Geschichte, also öffne ich diese Frage
Franco Rondini

Könnten Sie bitte Schritt für Schritt erklären: Ich meine erstens herunterladen maven-android-sdk-deployer, zweitens was?
Hosein Aqajani

@ H.Aqjn Ich habe die Antwort neu geordnet, um ein wenig besser zu lesen (glaube ich). Wenn Sie Gradle verwenden, sollten Sie in Ordnung sein, nur um das Support-Repository vom SDK-Manager
herunterzuladen

50

Gehen Sie zu dem Ort, an dem Sie Android Studio installiert haben (für mich ist es unter C:\Users\username\AppData\Local\Android\android-studio\), öffnen Sie es und sdk\toolsführen Sie es aus android.bat. Aktualisieren und laden Sie von hier aus fehlende Build-Tools herunter und stellen Sie sicher, dass Sie das Android Support Repository und die Android Support Library unter Extras aktualisieren. Starten Sie Android Studio nach Abschluss des SDK-Managers neu.

Es scheint, dass Android Studio alle installierten Android SDK-Dateien vollständig ignoriert und eine eigene Kopie behält. Nach dem Ausführen eines Updates wurde alles mit compile erfolgreich für mich kompiliertcom.android.support:appcompat-v7:18.0.+


8
Dies hat mir wirklich geholfen. Ich habe erwartet, dass Android Studio das Android SDK verwendet, das ich manuell auf meinem Computer installiert habe. Es ist wirklich ärgerlich, wenn die IDE ein eigenes Android SDK anstelle eines vom Entwickler definierten verwendet. Das SDK sollte von der IDE getrennt sein.
Samael

13
Ich hatte keine Ahnung, dass Android Studio eine eigene Version des SDK unter AppData hat. Das ist super verwirrend!
pqvst

Ich musste Extras / Android Support Library installieren, SDK Manager neu starten und dann erschien das Android Support Repository.
Leos Literak

Dies hat einen Fehler über "com.android.support:appcompat-v7:19.+" für mich beseitigt.
Nick Westgate

Nun, ich hatte auch ähnliche Verwirrung, als ich mehrere Android SDK-Instanzen auf meinem Ubuntu-Computer bemerkte. Daher hatte ich den schlechten Verdacht, dass AndroidStudio eine eigene Instanz erstellt. Derzeit führe ich AS v.2.1.2 aus und das gleiche Problem ist immer noch vorhanden. Ich frage mich, ob das Team plant, es eines Tages zu reparieren, oder ob sie es als Feature betrachten :)
Ausverkauft

27

Wenn Sie mit kopflosem CI arbeiten und das Android SDK über die Befehlszeile installieren, stellen Sie sicher, dass die m2repository-Pakete in das --filterArgument aufgenommen werden:

android update sdk --no-ui --filter platform-tools,build-tools-19.0.1,android-19,extra-android-support,extra-android-m2repository,extra-google-m2repository

Aktualisieren

Ab Android SDK Manager rev. 22.6.4 das funktioniert nicht mehr. Versuchen Sie stattdessen Folgendes:

android list sdk --all

Sie erhalten eine Liste aller verfügbaren SDK-Pakete. Suchen Sie im ersten Befehl oben nach den numerischen Werten der Komponenten ("Google Repository" und andere, die möglicherweise fehlen).

Installieren Sie die Pakete mit ihren numerischen Werten:

android update sdk --no-ui --all --filter <num>

Update Nr. 2 (September 2017)

Mit den „neuen“ Android SDK Tools , die früher in diesem Jahr veröffentlicht wurden, das androidist Befehl jetzt veraltet, und eine ähnliche Funktionalität auf ein neues Werkzeug namens verschoben worden sdkmanager:

Liste der installierten Komponenten:

sdkmanager --list

Installierte Komponenten aktualisieren:

sdkmanager --update

Installieren Sie eine neue Komponente (z. B. Build Tools-Version 26.0.0):

sdkmanager 'build-tools;26.0.0'

Danke für die nette Kommandozeile! Leider ist jetzt (Android SDK Manager Version 22.6.4 (von About in GUI)) die Antwort, die ich darauf bekomme : Error: Ignoring unknown package filter 'platform-tools', auch für 'android-19'und 'extra-android-support'. Prost!
Sdaau

Ich bekomme "SWT-Ordner" / opt / android-sdk-linux / tools / lib / arm "existiert nicht
Marian Klühspies

3
Danke für den Hinweis. Ich bin gelaufen : android list sdk --all |grep -i repos, es gibt mir "98-Android Support Repository, revision 6"und "106-Google Repository, revision 11". Dann habe ich beide Pakete installiert, android update sdk -u -a -t 98,106die das Problem endgültig gelöst haben (ich verwende adt-bundle-linux-x86-20140702.zip, weiß nicht, um welche SDK Manager-Version es sich handelt).
Mateusz Szulc

1
Sie haben hier viele Leben gerettet, indem Sie die Notwendigkeit der Installation von Google Repository erwähnt haben. Vielen Dank.
Yati Sagade

Ja, meine war auch wegen fehlender - 142 - Android Support Repository, Revision 21 150 - Google Repository, Revision 22
Bruce Lim


2
compileSdkVersion 17
targetSdkVersion 17

Ändern Sie die Kompilierungsversion von 18 auf 17

compile "com.android.support:support-v4:17.0.+"
compile "com.android.support:appcompat-v7:17.0.+"

2

Neben Kassims Antwort:

Wie Peter sagt, werden sie nicht in Maven Central sein

Verwenden Sie entweder maven-android-sdk-deployer , um die Bibliotheken in Ihrem lokalen Repository bereitzustellen

Oder laden Sie vom Android SDK Manager das Android Support Repository (in Extras) herunter und ein M2-Repo der Support-Bibliotheken wird in Ihr Android SDK-Verzeichnis heruntergeladen

Ich musste auch das "Local Maven Repository für Support Libraries" im Android SDK Manager aktualisieren.


1

Um @friederbluemle wiederzugeben, können Sie den SDK-Manager auch einfach über die Befehlszeile starten, wenn Sie die Android SDK-Tools installiert haben:

$ android

Wählen Sie dann in der angezeigten Benutzeroberfläche die Tools / Repositorys aus, die installiert werden müssen - in Ihrem Fall das Repo der Support-Bibliothek


1

Schreiben Sie die folgende Anweisung in die build.gradle-Datei Ihrer App.

com.android.support:appcompat-v7:18.0.+

Das ist es


1

Versuchen Sie , Ihre Firewall zu deaktivieren , it works for me. Es scheint, dass Android Studio einige Abhängigkeiten herunterladen möchte und unsere Firewall verhindert, dass es heruntergeladen wird just be aware that turning your firewall off may lower the security of your computer. Wenn Sie mehr Zeit haben, können Sie Ihrem Android Studio manuell erlauben, Ihre Firewall zu umgehen. Auf diese Weise können Sie Ihre Firewall einschalten, während Android Studio alles herunterladen kann, was es will.


1

Ich hatte diese Nachricht in Android Studio 2.1.1 auf der Registerkarte Gradle Build. Ich habe viele Dateien vom SDK-Manager installiert, aber es hat nicht geholfen.

Ich musste auf die nächste Registerkarte "Gradle Sync" klicken. Es gab einen Link "Repository installieren und Projekt synchronisieren", der das "Android Support Repository" installierte.


1
  1. Installieren Sie Android SDK Manager
  2. Überprüfen Sie, ob Bauwerkzeuge installiert sind. Installieren Sie API 23.
  3. Laden Sie im Android SDK Manager das 'Android Support Repository' herunter.
  4. entferne cordova-plugin-android-support-v4
  5. bauen

0

Fügen Sie dies Ihrem Gradle hinzu:

allprojects {
    buildscript {
        repositories {
            maven {
                url "https://dl.bintray.com/android/android-tools"
            }
        }
    }
...
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.