Отказ [ INSTALL_FAILED_OLDER_SDK ] Android -L

? TomCB @ | Original: StackOverFlow
---

Я пытаюсь использовать новый CardView из Android L. Я обновил Everyting в менеджере SDK, но я постоянно получаю "Отказ [ INSTALL_FAILED_OLDER_SDK ]" - ошибки.

Это мой build.cradle файл

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 ответ

1Eddie Ringle @

Недавно былпост здесь относительно несовместимости л SDK,   с предыдущими версиями Android. Я копалась в AOSP хранилищ   уже несколько часов в настоящее время, и решил, что инструменты ведут себя в этом   путь, потому что они предназначены для лечения превью платформы по-разному.   Если вы компилируете против предварительного просмотра SDK (Android -L ), инструменты разработки, будет   заблокировать minSdkVersion и targetSdkVersion в том же уровне API . это   Результаты в полученном применения неспособен быть установлен на   устройств, работающих более ранних версий Android, даже если ваше приложение   не делает ничего конкретного, чтобы L. Чтобы сделать дела хуже,новая   поддержка LIBS ( CardView, RecyclerView, палитра, и т.д.) также блокируется   на уровень L API, хотя - в ​​соответствии с их хранилища   Имена - они должны работать на уровне API 7 прекрасно ( и они делают !).

Смотрите мой Reddit пост об этом http://www.reddit.com/r/androiddev/comments/297xli/howto_use_the_v21_support_libs_on_older_versions/, избежать ошибок .

2Skillachie @

Если у вас есть выше вопросы будут решены, как упоминалось Эдди . Вы также можете столкнуться с другой ошибки ;;

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

Это будет присутствовать в вашем styles.xml . Быстрое решение, чтобы заменить егониже следующее:

<?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 @

При компиляции с L на самом деле делает изменения во время компиляции настройки вашего minsdkversion до L. Если вы хотите использовать RecyclerView или CardView Я бы порекомендовал проверить https://github.com/twotoasters/RecyclerViewLib . RecyclerView и CardView двигались в эту библиотеку, чтобы там не мин проблемой версия L . Автор также объяснил в своих http://toastdroid.com/2014/09/03/unlocking-recyclerview/, как все L соответствующие нормы была удалена, чтобы сделать его безопасным в использовании.

Чтобы добавить RecyclerViewLb к вашему проекту просто добавьте следующую строку в ваш зависимостей в вашей build.gradle файла :

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

Тогда вам не нужно добавитьcompile 'com.android.support:recyclerview-v7:+' к вашему build.gradle, как вы получите, что через RecyclerViewLib .

4harikris @

Change

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

to

android {
  compileSdkVersion 21
  buildToolsVersion '21.0.2'

Примечание android-L находится в одинарные кавычки, но 21 нет. 21 Являетсяцелым числом, а нестрока.