Fehler [ INSTALL_FAILED_OLDER_SDK ] Android -L

? TomCB @ | Original: StackOverFlow
---

Ich versuche, den neuen Card von Android L. verwenden Ich aktualisiert every in der SDK -Manager, aber ich bekomme immer die "Failure [ INSTALL_FAILED_OLDER_SDK ] " - Fehler.

Das ist mein build.cradle Datei

apply plugin: 'android'

android {
    compileSdkVersion 'android-L'
    buildToolsVersion '20.0.0'

    defaultConfig {
        applicationId "www.thomascbeerten.com.nieuwetests"
        minSdkVersion 8
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    // Support Libraries
    compile 'com.android.support:support-v4:19.1.0'
    compile 'com.android.support:appcompat-v7:19.1.0'
    compile 'com.android.support:gridlayout-v7:19.1.0'
    compile 'com.android.support:mediarouter-v7:19.1.0'
    // compile 'com.android.support:support-v13:19.1.0'
    compile 'com.android.support:recyclerview-v7:+'
}
---

Top 5 Antwort

1Eddie Ringle @

Vor kurzem gab es einen Beitrag hier in Bezug auf die L SDK Unverträglichkeit   mit früheren Versionen von Android . Ich habe in AOSP Repositories gegraben   schon ein paar Stunden jetzt, und festgestellt, dass die Werkzeuge verhalten diese   Weg, weil sie dazu bestimmt sind, Vorschau Plattformen unterschiedlich zu behandeln .   Wenn Sie gegen eine Vorschau SDK ( android -L) zu kompilieren, wird die Build-Tools   sperren minSdkVersion und targetSdkVersion zu gleichen API-Ebene . diese   Ergebnisse in dem erzeugten Anwendungs ​​unfähig zu installieren   Geräte, auf denen ältere Versionen von Android, selbst wenn die Anwendung   ist nicht etwas Bestimmtes zu tun, L. Zu allem Überfluss, die neue   Support -Bibliotheken ( Card, RecyclerView, Palette, usw.) werden ebenfalls gesperrt   in den L- API-Ebene, obwohl - entsprechend ihrer Repository   Namen - sie sind auf API-Ebene 7 gut funktionieren sollte ( und das tun sie !).

Siehe meine Reddit Beitrag zu diesem http://www.reddit.com/r/androiddev/comments/297xli/howto_use_the_v21_support_libs_on_older_versions/, mit einem Workaround.

2Skillachie @

Sobald Sie die oben genannten Probleme gelöst, wie Eddie erwähnt. Sie können auch in einen anderen Fehler führen ;;

Error:Error retrieving parent for item: No resource found that matches the given name 'android:Theme.Material.Light'.

Dies wird in Ihrem styles.xml vorhanden sein. Die schnelle Lösung ist, es mit dem unten folgenden zu ersetzen :

<?xml version="1.0" encoding="utf-8"?>
 <resources>
<!--<style name="AppTheme" parent="android:Theme.Material.Light">-->
<style name="AppTheme" parent="android:Theme.Holo.Light">
</style>

3MinceMan @

Wenn Sie mit L kompilieren es tatsächlich eine Änderung beim Übersetzen eine entsprechende Einstellung Ihrer minsdkversion auf L. Wenn Sie verwenden RecyclerView oder Card würde ich empfehlen, Check-out https://github.com/twotoasters/RecyclerViewLib möchten. RecyclerView und Card in diese Bibliothek bewegt worden, so dass es keine min Version L Problem. Der Autor auch in seiner http://toastdroid.com/2014/09/03/unlocking-recyclerview/ erklärt, wie alle L zugehörigen Code wurde entfernt sie sicher zu machen.

Um RecyclerViewLb zu Ihrem Projekt hinzufügen fügen Sie einfach die folgende Zeile in die Abhängigkeiten in Ihrem build.gradle Datei :

compile 'com.twotoasters.RecyclerViewLib:library:1.0.+@aar'

Dann wollen nicht die compile 'com.android.support:recyclerview-v7:+', um Ihre build.gradle hinzufügen, wie Sie, dass durch RecyclerViewLib bekommen .

4harikris @

Change

android {
    compileSdkVersion 'android-L'
    buildToolsVersion '20.0.0'

to

android {
  compileSdkVersion 21
  buildToolsVersion '21.0.2'

Hinweis android-L ist in einfache Anführungszeichen, aber 21 nicht. 21 Eine ganze Zahl und nicht eine Zeichenfolge.