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.+'
}
ОБНОВИТЬ
Я только что установил Android Studio Beta и изменил свои зависимости на те, которые Eugen предложил ниже. Но синхронизация проекта выдает одну и ту же ошибку, независимо от того, какую версию 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
* примечание - я снова добавил эти две библиотеки и попытался выполнить синхронизацию, на всякий случай. Но без изменений.
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()
}
}
7 ответов
ОБНОВЛЕНИЕ: нашел реальное решение для моего случая. Убедитесь, что ни одна из ваших зависимостей не включает в себя support-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
С последними обновлениями, используя это:
compile 'com.android.support:support-v4:20.+'
или же
compile 'com.android.support:support-v4:+'
вы используете поддержку lib в L-preview.
Эти поддерживающие библиотеки объявляют minSdkVersion L
,
Вы должны заставить minSdkVersion
быть 'L' (проверьте документ)
Это потому, что эти API не являются окончательными. Это способ предотвратить установку приложений на конечном устройстве API 21 или публикацию его в магазине с помощью поддержки lib 21-r1.
С помощью
compile 'com.android.support:support-v4:19.1.0'
Вы используете "старую" библиотеку поддержки 19.1.0.
У меня была та же проблема, что и в одной из моих зависимостей в качестве зависимости было указано "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
}
compile('com.android.support:support-v4:19.1.0'){
force = true
}
Это сработало для меня
Я получаю ошибку:
Не удалось выполнить задачу ":app:processDebugManifest".
Ошибка слияния манифеста: использует-sdk:minSdkVersion 1 не может быть меньше, чем версия 4, объявленная в библиотеке C:\Users\Igor\AppData\Local\Android\sdk\samples\android-21_1\legacy\ApiDemos\app\build\ промежуточные звенья \exploded-aar\com.android.support\support-v4\21.0.3\AndroidManifest.xml Предложение: используйте инструменты:overrideLibrary="android.support.v4" для принудительного использования
Затем я решил это, поместив в блок блока defaultConfig следующее:
minSdkVersion 15
targetSdkVersion 21
Это правильно. Новая библиотека поддержки не совместима (пока) со старыми версиями 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
}
}
В Android SDK Manager установите "Репозиторий поддержки Android" из группы "extra". Помогает мне. Когда я добавил "исключить группу:" com.android.support ", модуль:" support-v4 "" сборка была завершена, но произошли некоторые другие ошибки