Gradle Build Android Project Błąd „Nie można rozwiązać wszystkich zależności”


79

Próbuję zbudować mój pierwszy projekt za pomocą Gradle i myślę, że moje pliki i ustawienia Gradle są poprawne.

Używam tylko jednego modułu i obsługuję biblioteki V4 + AppCompatBar.

Projekt - build.gradle

allprojects {
    repositories {
        mavenCentral()
    }
}

Projekt - settings.gradle

include ':AssignmentTempos21'

Moduł główny - 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.+"
}

Wyjście konsoli z 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

Przejdź do tego numeru i oznacz go gwiazdką. Wydaje się, że jest wiele problemów, ponieważ było wiele niepublikowanych bibliotek z jCenter.
Patricio Sard

Odpowiedzi:


95

Jak mówi Peter, nie będzie ich w Maven Central

z Menedżera SDK systemu Android pobierz „Repozytorium pomocy technicznej systemu Android”, a repozytorium bibliotek wsparcia Maven zostanie pobrane do katalogu Android SDK (zobacz folder „dodatki”)

aby wdrożyć biblioteki w lokalnym repozytorium .m2, możesz użyć maven-android-sdk-deployer

Edycja 2017:

możesz teraz odwołać się do internetowego repozytorium Google M2

repositories {
google()
jcenter()
}

12
Pobranie „Android Support Repository” z „Android SDK Manager” definitywnie rozwiązuje ten problem, który dostałem w projektach Android Studio 0.4.3. Pozostaje tylko trochę szkoda, że ​​Gradle stwierdził deprecjację, ale to już inna historia, więc otwieram to pytanie
Franco Rondini

czy mógłbyś wyjaśnić krok po kroku: mam na myśli pierwsze pobranie maven-android-sdk-deployer, drugie co?
Hosein Aqajani

@ H.Aqjn Przeorganizowałem odpowiedź, aby przeczytać trochę lepiej (myślę), jeśli używasz Gradle, powinieneś być w porządku, aby pobrać repozytorium pomocy technicznej z Menedżera SDK
kassim

50

Idź do miejsca, w którym zainstalowałeś Android Studio (dla mnie jest pod C:\Users\username\AppData\Local\Android\android-studio\) i otwórz sdk\tools, a następnie uruchom android.bat. Stąd zaktualizuj i pobierz brakujące narzędzia do kompilacji i upewnij się, że zaktualizowałeś repozytorium pomocy technicznej Androida i bibliotekę obsługi Androida w sekcji Dodatki. Uruchom ponownie Android Studio po zakończeniu działania Menedżera SDK.

Wygląda na to, że Android Studio całkowicie ignoruje wszelkie zainstalowane pliki Android SDK i zachowuje własną kopię. Po uruchomieniu aktualizacji wszystko skompilowało się pomyślnie za pomocą kompilacjicom.android.support:appcompat-v7:18.0.+


8
To naprawdę pomogło. Spodziewałem się, że Android Studio będzie używać zestawu SDK systemu Android, który zainstalowałem ręcznie na moim komputerze. Posiadanie IDE używającego własnego zestawu Android SDK zamiast używania zdefiniowanego przez programistę jest naprawdę denerwujące. SDK powinien być oddzielny od IDE.
samael

13
NIE MIAŁEM POMYSŁU, że Android Studio ma własną wersję SDK w AppData. To jest bardzo zagmatwane!
pqvst

Musiałem zainstalować Dodatki / Bibliotekę wsparcia Androida, zrestartować Menedżera SDK, a następnie pojawiło się repozytorium wsparcia Androida.
Leos Literak

Pozbyło się to dla mnie błędu dotyczącego „com.android.support:appcompat-v7:19.+”.
Nick Westgate

Cóż, miałem też podobne zamieszanie, gdy zauważyłem wiele instancji Android SDK na moim komputerze z Ubuntu. Stąd miałem złe podejrzenie, że AndroidStudio tworzy własną instancję. Obecnie używam AS v.2.1.2 i ten sam problem jest nadal obecny. Zastanawiam się, czy zespół planuje to wkrótce naprawić, czy uważają to za funkcję :)
Wyprzedane

27

Jeśli korzystasz z bezgłowego CI i instalujesz Android SDK za pomocą wiersza poleceń, pamiętaj o dołączeniu pakietów m2repository w --filterargumencie:

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

Aktualizacja

Od wersji Android SDK Manager 22.6.4 to już nie działa. Spróbuj tego zamiast tego:

android list sdk --all

Otrzymasz listę wszystkich dostępnych pakietów SDK. Sprawdź wartości liczbowe składników z pierwszego polecenia powyżej („Repozytorium Google” i inne, których może brakować).

Zainstaluj pakiety, używając ich wartości liczbowych:

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

Aktualizacja nr 2 (wrzesień 2017)

Wraz z „nowymi” narzędziami Android SDK, które zostały wydane na początku tego roku, androidpolecenie zostało wycofane, a podobne funkcje zostały przeniesione do nowego narzędzia o nazwie sdkmanager:

Lista zainstalowanych komponentów:

sdkmanager --list

Zaktualizuj zainstalowane komponenty:

sdkmanager --update

Zainstaluj nowy komponent (np. Wersję narzędzi do budowania 26.0.0):

sdkmanager 'build-tools;26.0.0'

Dzięki za fajną linię poleceń! Niestety teraz (Android SDK Manager rev. 22.6.4 (z About in GUI)) otrzymuję odpowiedź:, Error: Ignoring unknown package filter 'platform-tools'także dla 'android-19'i 'extra-android-support'. Twoje zdrowie!
sdaau

Otrzymuję „folder SWT” / opt / android-sdk-linux / tools / lib / arm ”nie istnieje
Marian Klühspies

3
Dziękuję za podpowiedź. Uciekłem:, android list sdk --all |grep -i reposdaje mi "98-Android Support Repository, revision 6"i "106-Google Repository, revision 11". Następnie zainstalowałem oba działające pakiety, android update sdk -u -a -t 98,106co ostatecznie rozwiązało problem (używam adt-bundle-linux-x86-20140702.zip, nie wiem, która to wersja Menedżera SDK).
Mateusz Szulc

1
Wspominając o potrzebie zainstalowania Google Repository, uratowałeś wiele istnień ludzkich. Dziękuję Ci.
yati sagade

Tak, moja była również z powodu braku - 142 - Repozytorium wsparcia Androida, wersja 21 150 - Repozytorium Google, wersja 22
Bruce Lim


2
compileSdkVersion 17
targetSdkVersion 17

zmień wersję kompilacji z 18 na 17

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

2

Oprócz odpowiedzi Kassima:

Jak mówi Peter, nie będzie ich w Maven Central

Użyj maven-android-sdk-deployer, aby wdrożyć biblioteki do lokalnego repozytorium

Lub z Android SDK Manager pobierz repozytorium pomocy technicznej Androida (w dodatkach), a repozytorium M2 bibliotek wsparcia zostanie pobrane do katalogu Android SDK

Musiałem również zaktualizować „Lokalne repozytorium Maven dla bibliotek wsparcia” w Android SDK Manager.


1

aby echo @friederbluemle, możesz również po prostu uruchomić menedżera SDK z wiersza poleceń, jeśli masz zainstalowane narzędzia Android SDK:

$ android

a następnie w wyskakującym interfejsie użytkownika wybierz narzędzia / repozytoria, które mają być zainstalowane - w twoim przypadku repozytorium bibliotek wsparcia


1

zapisz następującą instrukcję w pliku build.gradle aplikacji.

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

Otóż ​​to


1

Spróbuj wyłączyć zaporę , it works for me. Wydaje się, że android studio chce pobrać kilka zależności i nasze zapobiega zapory go z pobraniem go just be aware that turning your firewall off may lower the security of your computer. Jeśli masz więcej czasu, możesz ręcznie zezwolić swojemu studiu Android na ominięcie zapory, w ten sposób możesz włączyć zaporę, jednocześnie zezwalając Android Studio na pobranie wszystkiego, co zechce.


1

Otrzymałem ten komunikat w Android Studio 2.1.1 na karcie Gradle Build. Zainstalowałem wiele plików z Menedżera SDK, ale to nie pomogło.

Musiałem kliknąć następną kartę „Gradle Sync”. Był tam link „Zainstaluj repozytorium i zsynchronizuj projekt”, który zainstalował „repozytorium pomocy dla Androida”.


1
  1. Zainstaluj menedżera Android SDK
  2. sprawdź, czy zainstalowane są narzędzia budowlane. zainstaluj api 23.
  3. z Android SDK Manager pobierz „Repozytorium pomocy technicznej Androida”
  4. usuń cordova-plugin-android-support-v4
  5. budować

0

Dodaj to do swojego gradle:

allprojects {
    buildscript {
        repositories {
            maven {
                url "https://dl.bintray.com/android/android-tools"
            }
        }
    }
...
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.