Android Studio gradle nicht die angegebene Version kompilieren

? Thahzan Mohomed @ | Original: StackOverFlow
---

Ich habe die Entwicklung dieser kleinen Projekt seit einigen Tagen aber plötzlich heute, Android Studio begann mir diese Fehlermeldung zu geben,

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

Ich verstand, dass es ist, weil es versucht, die Bibliothek der Android -L kompilieren. Die Version, die ich will, dass es zu kompilieren ist die alte Version, aber es wird nicht. Es gibt ständig die obige Fehler egal welche Version, die ich geben . Hier ist die Abhängigkeiten .

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:20.+'
    compile 'com.android.support:support-v4:20.+'
}

UPDATE

Ich habe gerade Android Studio Beta und änderte meine Abhängigkeiten, die dem von Eugen schlug unten. Aber die Synchronisierung das Projekt gibt den gleichen Fehler, egal welche Version appcompat, Unterstützung Version I angeben. Es gibt dem Fehler jedes Mal ich synchronisieren

uses-sdk:minSdkVersion 14 cannot be smaller than version L declared in library com.android.support:support-v4:21.0.0-rc1

Meine aktualisiert Abhängigkeiten

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.+'
    compile 'com.android.support:support-v4:19.+'
}

UPDATE 2

Ich glaube nicht, dass ich die Abhängigkeiten System Android Studio richtig zu verstehen. Ich entfernt sowohl die appcompat und Unterstützung von den Abhängigkeiten und es macht mir immer noch den gleichen Fehler. Muss ich die ursprünglich enthalten Bibliotheken von irgendwo entfernen?

build.gradle

* Anmerkung - Ich habe diese beiden Bibliotheken wieder ein und versuchte die Synchronisierung, nur für den Fall . Aber keine chenges .

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'
}

Top-Level- 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()
    }
}
---

Top 5 Antwort

1Eugen Martynov @

Das ist richtig. Das neue Support-Bibliothek ist nicht kompatibel (noch) nicht mit alten Android-Versionen .

Ändern Sie Ihr gradle zu:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:19.1.+'
    compile 'com.android.support:support-v4:19.1.+'
}

Ich hoffe, dass Ihr immer noch so etwas wie dieses :

android {
  compileSdkVersion 19
  buildToolsVersion '19.1.0'

  defaultConfig {
    minSdkVersion 14
    targetSdkVersion 19
 }
}
2TalkLittle @

UPDATE : Fand die wirkliche Lösung für meinen Fall . Achten Sie darauf, keine Ihrer Abhängigkeiten werden stillschweigend, einschließlich Support - v4 r21, indem Sie diese in Ihrem build.gradle :

compile("com.blahblah:blah:123") {
    exclude group: 'com.android.support', module:'support-v4'
}

Sie können hinzufügen, die exclude für alle Bibliotheken, und nehmen Sie einen nach dem anderen, bis Sie herausfinden, die man in support-v4 Ziehen und geben Ihnen die Fehler. Und lassen exclude auf, dass man .

Es gibt einen neuen Bug hier abgelegt : https://code.google.com/p/android/issues/detail?id=72430

Angenommen, Sie sind mit dem Support- Repository verwenden, ist die Problemumgehung für Kommentare oder entfernen Sie die Zeile

<version>21.0.0-rc1</version>

in der lokalen Maven Repo- List-Datei in <android-sdk>/extras/android/m2repository/com/android/support-v4/maven-metadata.xml

3Gabriele Mariotti @

Mit den letzten Updates, mit diesem :

compile 'com.android.support:support-v4:20.+'

or

compile 'com.android.support:support-v4:+'

Sie verwenden die Unterstützung lib in L- Vorschau .

Diese Unterstützung Bibliotheken deklarieren minSdkVersion L .

Sie müssen die minSdkVersion zu sein 'L' (überprüfen Sie die doc) zwingen

Dies liegt daran, diese APIs sind nicht endgültig . Es ist ein Weg der Installation der Anwendungen auf einem letzten API- 21 -Gerät oder Veröffentlichung auf den Laden mit Unterstützung lib 21 -r1 zu verhindern.

Using

compile 'com.android.support:support-v4:19.1.0'

Sie verwenden die "alte" Support-Bibliothek 19.1.0 .

4raycohen @

Ich hatte das gleiche Problem wie einer meiner Abhängigkeiten festgelegt hatte " Support - v7 : + ' als eine Abhängigkeit . Ich war in der Lage, dies mit aufzuspüren gradle dependencies

Gradle bietet eine Möglichkeit, http://www.gradle.org/docs/current/dsl/org.gradle.api.artifacts.dsl.DependencyHandler.html#N15F3A auf eine bestimmte Version . Am Ende habe ich in meinem build.grade :

compile('com.android.support:appcompat-v7:19.1.0') {
    // really use 19.1.0 even if something else resolves higher
    force = true 
}
5For Guru @
compile('com.android.support:support-v4:19.1.0'){
    force = true
}

Dieser arbeitete für mich