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 "" сборка была завершена, но произошли некоторые другие ошибки

Другие вопросы по тегам