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