Falha [ INSTALL_FAILED_OLDER_SDK ] Android -L

? TomCB @ | Original: StackOverFlow
---

Estou tentando usar o novo CardView do Android L. Eu atualizei everyting no gerenciador de SDK, mas eu continuo recebendo a "Failure [ INSTALL_FAILED_OLDER_SDK ]" - erro.

Este é o meu arquivo 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 Responder

1Eddie Ringle @

Recentemente, houve um post aqui sobre a incompatibilidade do L SDK   com versões anteriores do Android . Eu estive cavando em repositórios AOSP   para muito poucas horas agora, e determinou que as ferramentas se comportam desta   forma porque eles são projetados para tratar plataformas de visualização diferente.   Se você compilar contra um SDK visualização ( android- L), as ferramentas de compilação vai   bloquear minSdkVersion e targetSdkVersion ao mesmo nível API. este   resulta na aplicação produzido sendo incapaz de ser instalado sobre   dispositivos que executam versões mais antigas do Android, mesmo se o seu aplicativo   não está fazendo nada específico para L. Para piorar a situação, o novo   apoio libs ( CardView, RecyclerView, paleta, etc.) também são bloqueados   para o nível L de API, embora - de acordo com o seu repositório   nomes - eles devem trabalhar em nível API 7 muito bem ( e eles fazem !).

Veja o meu post Reddit sobre este http://www.reddit.com/r/androiddev/comments/297xli/howto_use_the_v21_support_libs_on_older_versions/, com uma solução alternativa.

2Skillachie @

Depois de ter as questões acima resolvidos como mencionado por Eddie. Você também pode executar em outro erro ;;

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

Isso vai estar presente em seu styles.xml . A correção rápida é substituí-lo com o seguinte abaixo :

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

Quando você compilar com L ela realmente faz uma mudança durante a compilação definir seu minsdkversion para L. Se você quiser usar RecyclerView ou CardView eu recomendaria verificar https://github.com/twotoasters/RecyclerViewLib . RecyclerView e CardView foram mover dentro da biblioteca de modo que não existe qualquer problema min versão G . O autor também explicou em seu http://toastdroid.com/2014/09/03/unlocking-recyclerview/ como todo o código relacionado L foi removido para torná-lo seguro.

Para adicionar RecyclerViewLb ao seu projeto apenas adicione a seguinte linha ao seu dependências em seu arquivo build.gradle :

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

Você, então, não quero adicionar o compile 'com.android.support:recyclerview-v7:+' para o seu build.gradle como você vai ter que através RecyclerViewLib .

4harikris @

Change

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

to

android {
  compileSdkVersion 21
  buildToolsVersion '21.0.2'

Nota android-L é entre aspas simples, mas 21 não é. 21 Um número inteiro e não uma cadeia.