Помилка Gradle Build Android Project "Не вдалося вирішити всі залежності"


79

Я намагаюся побудувати свій перший проект за допомогою Gradle, і я вважаю, що файли та налаштування gradle правильні.

Я використовую лише один модуль і підтримую бібліотеки V4 + AppCompatBar.

Проект - build.gradle

allprojects {
    repositories {
        mavenCentral()
    }
}

Проект - settings.gradle

include ':AssignmentTempos21'

Основний модуль - 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.+"
}

Вихід консолі з прапором -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

Будь ласка, перейдіть до цього випуску та позначте його зірочкою. Здається, є багато проблем, тому що було багато бібліотек, не виданих з jCenter.
Патрісіо Сард

Відповіді:


95

Як каже Петро, ​​їх не буде в Maven Central

з диспетчера Android SDK завантажте «Репозиторій підтримки Android», і репозиторій Maven бібліотек підтримки буде завантажений у ваш каталог SDK Android (див. папку «Додатково»)

для розгортання бібліотек у вашому локальному сховищі .m2 ви можете використовувати maven-android-sdk-deployer

2017 редагування:

тепер ви можете звернутися до Інтернет-репозиторію M2 Google

repositories {
google()
jcenter()
}

12
Завантажуючи "Репозиторій підтримки Android" з "Менеджера SDK для Android" остаточно вирішую цю проблему, яку я отримав у проектах Android Studio 0.4.3. Залишається лише трохи шкода повідомлення про неприпустимість Градла, але це вже інша історія, тому я відкриваю це питання
Франко Рондіні

не могли б ви пояснити крок за кроком: я маю на увазі перше завантаження maven-android-sdk-deployer, друге що?
Хосейн Акаджані

@ H.Aqjn Я переставив відповідь, щоб прочитати трохи краще (я думаю), якщо ви використовуєте Gradle, вам слід добре завантажити сховище підтримки з диспетчера SDK
kassim

50

Перейдіть туди, де ви встановили Android Studio (для мене це нижче C:\Users\username\AppData\Local\Android\android-studio\), відкрийте sdk\toolsта запустіть android.bat. Відтепер оновіть та завантажте відсутні інструменти побудови та переконайтеся, що ви оновили сховище підтримки Android та бібліотеку підтримки Android у розділі Додатково. Перезапустіть Android Studio після завершення роботи менеджера SDK.

Здається, Android Studio повністю ігнорує будь-які встановлені файли Android SDK і зберігає власну копію. Після запуску оновлення для мене все успішно скомпільовано за допомогою compilecom.android.support:appcompat-v7:18.0.+


8
Це справді допомогло мені, я очікував, що Android Studio використовуватиме Android SDK, який я встановив вручну на своїй машині. Якщо IDE використовує власний Android SDK замість того, який визначив розробник, це справді дратує. SDK повинен бути окремим від IDE.
самаель

13
Я не мав ІДЕЇ, що Android Studio має власну версію SDK під AppData. Це надзвичайно заплутано!
pqvst

Мені довелося встановити Додатки / Бібліотеку підтримки Android, перезапустити менеджер SDK, а потім з’явилося сховище підтримки Android.
Леос Літерак

Це позбулося помилки про "com.android.support:appcompat-v7:19.+" для мене.
Нік Вестгейт,

Ну, у мене також була схожа плутанина, коли я помітив кілька екземплярів Android SDK на моїй машині Ubuntu. Звідси я погано підозрював, що AndroidStudio створює власний екземпляр. На даний момент я запускаю AS v.2.1.2, і ця сама проблема все ще присутня. Цікаво, чи команда планує це виправити найближчим часом, або вони вважають це особливістю :)
Розпродано

27

Якщо ви працюєте на безголовому інтерфейсі та встановлюєте Android SDK через командний рядок, обов’язково включіть пакети m2repository в --filterаргумент:

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

Оновлення

Станом на Android SDK Manager rev. 22.6.4 це вже не працює. Спробуйте замість цього:

android list sdk --all

Ви отримаєте список усіх доступних пакетів SDK. Знайдіть числові значення компонентів за першою командою вище ("Google Repository" та інші, яких ви можете бракувати).

Встановіть пакунки, використовуючи їх числові значення:

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

Оновлення No2 (вересень 2017 р.)

Завдяки "новим" інструментам SDK для Android, які були випущені на початку цього року, androidкоманда тепер застаріла, і схожа функціональність була переміщена до нового інструменту під назвою sdkmanager:

Перелік встановлених компонентів:

sdkmanager --list

Оновіть встановлені компоненти:

sdkmanager --update

Встановіть новий компонент (наприклад, версію інструментів побудови 26.0.0):

sdkmanager 'build-tools;26.0.0'

Дякую за приємний командний рядок! На жаль, зараз (Android SDK Manager rev. 22.6.4 (з About in GUI)) я отримую на нього відповідь:, Error: Ignoring unknown package filter 'platform-tools'також для 'android-19'та 'extra-android-support'. На здоров’я!
sdaau

Я отримую "папку SWT '/ opt / android-sdk-linux / tools / lib / arm' не існує
Marian Klühspies

3
Дякую за підказку. Я побіг:, android list sdk --all |grep -i reposце дає мені "98-Android Support Repository, revision 6"і "106-Google Repository, revision 11". Потім я встановив обидва запущених пакунки, android update sdk -u -a -t 98,106які остаточно вирішили проблему (я використовую adt-bundle-linux-x86-20140702.zip, не знаю, про яку версію диспетчера SDK мова йде).
Матеуш Шульц,

1
Ви врятували тут багато життів, згадавши про необхідність встановлення сховища Google. Дякую.
yati sagade

Так, мій також був зниклий - 142 - Репозиторій підтримки Android, редакція 21 150 - Репозиторій Google, редакція 22
Брюс Лім


2
compileSdkVersion 17
targetSdkVersion 17

змінити версію компіляції з 18 на 17

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

2

На додаток до відповіді Кассіма:

Як каже Петро, ​​їх не буде в Maven Central

Або використовуйте maven-android-sdk-deployer для розгортання бібліотек у вашому локальному сховищі

Або з Диспетчера SDK для Android завантажте сховище підтримки Android (у додатках), і репозиторій M2 бібліотек підтримки буде завантажений у ваш каталог SDK для Android

Мені також довелося оновити "Місцеве сховище Maven для бібліотек підтримки" в Android SDK Manager.


1

щоб echo @friederbluemle, ви також можете просто запустити менеджер SDK з командного рядка, якщо у вас встановлені інструменти Android SDK:

$ android

а потім у спливаючому інтерфейсі виберіть інструменти / сховища, які потрібно встановити - у вашому випадку repo бібліотеки підтримки


1

напишіть наступний вираз у файлі build.gradle вашого додатка.

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

Це воно


1

Спробуйте відключити брандмауер , it works for me. Здається , що андроїд студія хоче , щоб завантажити деяку залежність і наш брандмауер запобігає його від завантаження, just be aware that turning your firewall off may lower the security of your computer. Якщо у вас є більше часу, ви можете вручну дозволити своїй студії android обходити ваш брандмауер, таким чином ви можете увімкнути свій брандмауер, дозволяючи android studio завантажувати все, що захоче.


1

Я отримав це повідомлення в Android Studio 2.1.1 на вкладці Gradle Build. Я встановив багато файлів із диспетчера SDK, але це не допомогло.

Мені потрібно було натиснути наступну вкладку "Gradle Sync". Було посилання «Встановити сховище та проект синхронізації», яке встановило «Сховище підтримки Android».


1
  1. Встановіть android sdk manager
  2. перевірити, чи встановлені будівельні інструменти. встановити api 23.
  3. з диспетчера SDK для Android завантажте «Репозиторій підтримки Android»
  4. видалити cordova-plugin-android-support-v4
  5. побудувати

0

Додайте це до свого gradle:

allprojects {
    buildscript {
        repositories {
            maven {
                url "https://dl.bintray.com/android/android-tools"
            }
        }
    }
...
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.