Ошибка 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 Manager загрузите «Репозиторий поддержки Android», и репозиторий Maven с библиотеками поддержки будет загружен в ваш каталог Android SDK (см. папку «Дополнительно»)

для развертывания библиотек в локальном репозитории .m2 вы можете использовать maven-android-sdk-deployer

Редактировать 2017:

теперь вы можете ссылаться на онлайн-репозиторий M2 Google

repositories {
google()
jcenter()
}
касим
источник
12
Загрузка «Репозитория поддержки Android» из «Android SDK Manager» окончательно решит эту проблему, которую я получил в проектах Android Studio 0.4.3. Остается только немного жаль сообщения Gradle об отказе от поддержки, но это уже другая история, поэтому я открываю этот вопрос
Франко Рондини
не могли бы вы объяснить шаг за шагом: я имею в виду первую загрузку maven-android-sdk-deployer, а вторая что?
Hosein Aqajani
@ 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 Manager.

Кажется, что Android Studio полностью игнорирует любые установленные файлы Android SDK и сохраняет собственную копию. После запуска обновления все было успешно скомпилировано с помощью компиляцииcom.android.support:appcompat-v7:18.0.+

user2433523
источник
8
Это действительно помогло мне. Я ожидал, что Android Studio будет использовать Android SDK, который я вручную установил на свой компьютер. То, что IDE использует собственный Android SDK вместо того, который определил разработчик, действительно раздражает. SDK должен быть отдельным от IDE.
samael
13
У меня НЕ было ИДЕИ, что у Android Studio была собственная версия SDK под AppData. Это очень запутанно!
pqvst
Мне пришлось установить Extras / Android Support Library, перезапустить SDK Manager, после чего появился Android Support Repository.
Леос Литерак
Это избавило меня от ошибки "com.android.support:appcompat-v7:19.+" для меня.
Ник Вестгейт
Ну, у меня тоже было подобное замешательство, когда я заметил несколько экземпляров Android SDK на моем компьютере с Ubuntu. Следовательно, у меня было плохое подозрение, что AndroidStudio создает свой собственный экземпляр. В настоящее время я использую AS v.2.1.2, и эта проблема все еще присутствует. Интересно, планирует ли команда исправить это когда-нибудь в ближайшее время, или они считают это функцией :)
Распродано
27

Если вы работаете на автономном CI и устанавливаете 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» и другие, которые могут отсутствовать).

Установите пакеты, используя их числовые значения:

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

Обновление № 2 (сентябрь 2017 г.)

В «новых» инструментах Android SDK, которые были выпущены ранее в этом году, эта androidкоманда устарела, и аналогичные функции были перенесены в новый инструмент под названием sdkmanager:

Список установленных компонентов:

sdkmanager --list

Обновите установленные компоненты:

sdkmanager --update

Установите новый компонент (например, версию инструментов сборки 26.0.0):

sdkmanager 'build-tools;26.0.0'
Фридерблюмль
источник
Спасибо за красивую командную строку! К сожалению, теперь (Android SDK Manager rev. 22.6.4 (из About в GUI)) я получаю ответ:, Error: Ignoring unknown package filter 'platform-tools'также для 'android-19'и 'extra-android-support'. Ура!
sdaau 07
Я получаю «Папка SWT» / opt / android-sdk-linux / tools / lib / arm »не существует
Мариан Клюспис,
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 Manager).
Mateusz Szulc
1
Вы спасли здесь много жизней, упомянув о необходимости установки Google Repository. Спасибо.
yati sagade
Да, мой тоже был из-за отсутствия - 142 - Репозиторий поддержки Android, версия 21150 - Репозиторий Google, версия 22
Брюс Лим
5

Эти зависимости не существуют в Maven Central ( см. Это ).

Питер Нидервизер
источник
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 для развертывания библиотек в локальном репозитории.

Или из Android SDK Manager загрузите репозиторий поддержки Android (в Extras), и репозиторий M2 библиотек поддержки будет загружен в ваш каталог Android SDK.

Мне также пришлось обновить «Локальный репозиторий Maven для библиотек поддержки» в Android SDK Manager.

ModusPwnens
источник
1

чтобы повторить @friederbluemle, вы также можете просто запустить диспетчер SDK из командной строки, если у вас установлены инструменты Android SDK:

$ android

а затем в появившемся пользовательском интерфейсе выберите инструменты / репозитории, которые необходимо установить - в вашем случае репозиторий библиотеки поддержки

2 кипы
источник
1

напишите следующий оператор в файле build.gradle вашего приложения.

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

это оно

Ганпат Калия
источник
1

Попробуйте отключить брандмауэр , it works for me. Похоже, что студия Android хочет загрузить некоторые зависимости, и наш брандмауэр не позволяет ей загружать их just be aware that turning your firewall off may lower the security of your computer. Если у вас есть больше времени, вы можете вручную разрешить своей студии Android обходить ваш брандмауэр, таким образом вы можете включить брандмауэр, позволяя студии Android загружать все, что она хочет.

Кэри Бондок
источник
1

У меня было это сообщение в Android Studio 2.1.1 на вкладке Gradle Build. Я установил много файлов из SDK Manager, но это не помогло.

Мне нужно было перейти на следующую вкладку «Gradle Sync». Была ссылка «Установить репозиторий и синхронизировать проект», по которой был установлен «Репозиторий поддержки Android».

PiTheNumber
источник
1
  1. Установите android sdk manager
  2. проверьте, установлены ли строительные инструменты. установить api 23.
  3. из Android SDK Manager загрузите «Репозиторий поддержки Android»
  4. удалить cordova-plugin-android-support-v4
  5. строить
Матас Лесинскас
источник
0

Добавьте это в свой градиент:

allprojects {
    buildscript {
        repositories {
            maven {
                url "https://dl.bintray.com/android/android-tools"
            }
        }
    }
...
}
август
источник