Come utilizzare appcompat-v7 con le API di android 19

Tutto è in questioin

Ho un modulo con questo graddle :

apply plugin: 'com.android.library'
android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"
    compileOptions.encoding "ISO-8859-1"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 8
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:21.0.3'
}

Quando cambio “compileSdkVersion” a 19 => ho 100+ errori su risorse non trovato :

Esempio :

    Error:(9, 21) No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Body1'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Body2'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Button'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Caption'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Display1'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Display2'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Display3'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Display4'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Headline'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Inverse'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Large'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Large.Inverse'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.PopupMenu.Large'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.PopupMenu.Small'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Medium'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Medium.Inverse'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Menu'.
Error:Error retrieving parent for item: No resource found that matches the given name '@android:TextAppearance.Material.SearchResult.Subtitle'.
Error:Error retrieving parent for item: No resource found that matches the given name '@android:TextAppearance.Material.SearchResult.Title'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Small'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Small.Inverse'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Subhead'.
Error:Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Title'.
  • provare questo compile 'com.android.support:appcompat-v7:19.+'
  • targetSdkVersion non dovrebbe essere di 8, che è davvero davvero male.
  • Questo è un modulo di libreria, ho potuto ottenere il giro di targetSdkVersion penso
  • Io personalmente sto usando M D risposta da tempo.
InformationsquelleAutor An-droid | 2015-01-26



2 Replies
  1. 6

    naturalmente, si sono sempre questi errori in API<21, perché android:TextAppearance.Material e altri (Materiale) sono stati introdotti nel API 21. AppCompat è il porting di risorse, ma sono utilizzati senza android: prefisso (non posso verificare, in questo momento, se queste si utilizza anche, ma probabilmente sì). Se si compila la tua app con API 21 e un minor API dispositivo si blocca, si verificherà anche

    android: prefisso di fare riferimento a built-in params, che dovrebbe essere in tutte le versioni di Api supportate (minSDK). Il materiale non è presente in pre-API21 sistemi

    • significa, in altre parole il nostro minsdk deve essere di almeno API 21?
    • no, il min sdk versione che si desidera supportare. ma se si desidera utilizzare qualsiasi metodo nuovo/classe/stile (come sopra) dalla più recente SDK tenere a mente che la app sui dispositivi con le vecchie versione di Android (come questa più antica supportato minSdk) potrebbe gettare Exception o semplicemente omettere queste righe (ad esempio, attrs in un file XML). la domanda di cui sopra è di circa AppCompat biblioteca, che porta all’applicazione di alcuni metodi/classi/stili più recenti sdk, quindi, ad esempio, nuovi stili, Materiali, partialy) potrebbe essere utilizzato anche in sistemi più vecchi (ad esempio ICS), ma hanno diversa denominazione che non interferisca con i nomi originali
  2. 0

    Controllare il compileSdkVersion a costruire.gradle

    ad esempio.

        android {
        compileSdkVersion 22
        buildToolsVersion "22.0.1"
        dexOptions {
            javaMaxHeapSize "2g"
            //jumboMode true
        }
    }

    Se si tiene l’ultima, dovrebbe dare il mal di testa. La ragione di tutto ciò, è se ci sono più R file generato per la stessa libreria.

Lascia un commento