Android Studio gradle не компилирует указанную версию
Я разрабатывал этот небольшой проект уже несколько дней, но сегодня, сегодня, Android Studio начала давать мне эту ошибку
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : uses-sdk:minSdkVersion 14 cannot be smaller than version 14 declared in library com.android.support:support-v4:21.0.0-rc1
Я понял, что это потому, что он пытается скомпилировать библиотеку Android-L. Версия, которую я хочу скомпилировать, - это старая версия, но она не будет. Он продолжает давать мне вышеуказанную ошибку, независимо от того, в какую версию я вхожу. Вот зависимости.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:20.+'
compile 'com.android.support:support-v4:20.+'
}
UPDATE
Я только что установил Android Studio Beta и изменил свои зависимости на тот, который был предложен Юджином ниже. Но синхронизация проекта дает ту же ошибку, независимо от того, какую версию appcompat, версию поддержки, которую я указываю. Он дает эту ошибку каждый раз, когда я синхронизую
uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.android.support:support-v4:21.0.0-rc1
Мои обновленные зависимости
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.+'
compile 'com.android.support:support-v4:19.+'
}
ОБНОВЛЕНИЕ 2
Я не думаю, что правильно понимаю систему зависимостей Android Studio. Я просто удалил appcompat и поддержку из зависимостей, и это все равно дает мне ту же ошибку. Мне нужно удалить изначально включенные библиотеки откуда-нибудь?
build.gradle
* note - Я добавил эти две библиотеки снова и попытался синхронизировать, на всякий случай. Но нет ченджей.
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "taz.starz.footynews"
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.+'
compile 'com.android.support:support-v4:19.+'
compile project(':ParallaxScroll')
compile files('src/main/libs/Header2ActionBar-0.2.1.jar')
compile 'com.arasthel:gnavdrawer-library:+'
compile 'com.koushikdutta.ion:ion:1.2.4'
}
Верхний уровень build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
}
}
allprojects {
repositories {
mavenCentral()
}
}
Ответы
Ответ 1
ОБНОВЛЕНИЕ: Найденное реальное исправление для моего дела. Убедитесь, что ни одна из ваших зависимостей не содержит молчания, включая поддержку-v4 r21, выполнив это в build.gradle
:
compile("com.blahblah:blah:123") {
exclude group: 'com.android.support', module:'support-v4'
}
Вы можете добавить exclude
ко всем библиотекам, а затем удалить один за другим, пока не выясните, какой из них втягивал support-v4
и выдавал ошибку. И оставьте exclude
на этом.
Здесь добавлена новая ошибка: https://code.google.com/p/android/issues/detail?id=72430
Предполагая, что вы используете репозиторий поддержки, обходным путем является комментарий или удаление строки
<version>21.0.0-rc1</version>
в локальном файле листинга репозитория Maven в <android-sdk>/extras/android/m2repository/com/android/support-v4/maven-metadata.xml
Ответ 2
С последними обновлениями, используя это:
compile 'com.android.support:support-v4:20.+'
или
compile 'com.android.support:support-v4:+'
вы используете поддержку lib в L-preview.
Эти поддерживающие libs объявляют minSdkVersion L
.
Вы должны заставить minSdkVersion
быть "L" (проверить документ)
Это потому, что эти API не являются окончательными. Это способ предотвратить установку приложений на конечном устройстве API 21 или публикацию его в хранилище с помощью поддержки lib 21-r1.
Используя
compile 'com.android.support:support-v4:19.1.0'
вы используете "старую" библиотеку поддержки 19.1.0.
Ответ 3
У меня была та же проблема, что и одна из моих зависимостей указала "support-v7: +" как зависимость. Я смог отслеживать это с помощью gradle dependencies
Gradle предоставляет способ принудительное разрешение для определенной версии. Я закончил с этим в моем build.grade
:
compile('com.android.support:appcompat-v7:19.1.0') {
// really use 19.1.0 even if something else resolves higher
force = true
}
Ответ 4
compile('com.android.support:support-v4:19.1.0'){
force = true
}
Это сработало для меня
Ответ 5
Это правильно. Новая библиотека поддержки несовместима (пока) со старыми версиями Android.
Измените свой gradle на:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.1.+'
compile 'com.android.support:support-v4:19.1.+'
}
Я надеюсь, что у вас все еще есть что-то вроде этого:
android {
compileSdkVersion 19
buildToolsVersion '19.1.0'
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}
}
Ответ 6
Я получал ошибку:
Выполнение не выполнено для задачи ': app: processDebugManifest'.
Не удалось выполнить манифест слияния: uses-sdk: minSdkVersion 1 не может быть меньше версии 4, объявленной в библиотеке C:\Users\Игорь\AppData\Local\Android\SDK\Samples\андроид-21_1\наследие\ApiDemos\приложение\построить\промежуточные\разобранного-AAR\com.android.support\поддержка-v4\21.0.3\AndroidManifest.xml Предложение: использовать инструменты: overrideLibrary = "android.support.v4", чтобы заставить Использование
Затем я разрешил его, поместив следующее в мой блок defaultConfig gradle:
minSdkVersion 15
targetSdkVersion 21
Ответ 7
В Android SDK Manager установите "Android Support Repository" из "дополнительной" группы. Помогает мне. Когда я добавил "исключить группу:" com.android.support ", сборка модуля:" поддержка-v4 "была завершена, но произошли некоторые другие ошибки