2016-07-02 18 views
23

Mi sto prendendo Error:(26) No resource identifier found for attribute 'srcCompat' in package 'learnapp.android.example.com.learnapp' quando provo a eseguire la mia app.ho appena iniziato a imparare Android oggi.ho aggiunto un nuova attività e dint cambiano qualsiasi cosa in qualsiasi file xml.Nessun identificatore di risorsa trovato per l'attributo 'srcCompat' nel pacchetto 'learnapp.android.example.com.learnapp'

Questo è l'errore esatto:

Documents/MyProjects/LearnApp/app/src/main/res/layout/activity_display_message.xml 
Error:(26) No resource identifier found for attribute 'srcCompat' in package 'learnapp.android.example.com.learnapp' 

Ecco il mio activity_display_message.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="learnapp.android.example.com.learnapp.DisplayMessageActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    </android.support.design.widget.AppBarLayout> 

    <include layout="@layout/content_display_message" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|end" 
     android:layout_margin="@dimen/fab_margin" 
     app:srcCompat="@android:drawable/ic_dialog_email" /> 

</LinearLayout> 

ho già letto domande simili e visto che sia la linea

xmlns:app="http://schemas.android.com/apk/res-auto" 

o

app:srcCompat="@android:drawable/ic_dialog_email" /> 

sbagliato nel loro caso che non è nel mio caso.

Incase è importante l'attività genitore di questa attività è MainActivity.java

+0

Puoi provare a impostare il drawable in voi codice 'fab.setImageResource (R.drawable. ic_dialog_email); ' – Harry

risposta

2

Aggiungi questa vectorDrawables.useSupportLibrary = true al vostro livello build.gradle app

defaultConfig { 
    ... 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
    vectorDrawables.useSupportLibrary = true 
} 
+3

No, funziona alla perfezione. Ancora mi dà lo stesso errore! – user3425344

32

Ho appena cambiato

xmlns:app="http://schemas.android.com/apk/res-auto" 

a

xmlns:app="http://schemas.android.com/apk/lib/my_package_name" 

Ho visto la risposta here

+0

Grazie per quello che funziona – user3766614

+4

Non farlo. Cambia il comportamento del layout. Se provi con ScrollingActivity, gira un pasticcio – Zinc

10

Accade anche quando si dispone di versioni obsolete delle librerie di supporto.

ho aggiornato da:

compile 'com.android.support:appcompat-v7:23.1.1' 
compile 'com.android.support:design:23.1.1' 
compile 'com.android.support:support-v4:23.1.1' 
compile 'com.android.support:recyclerview-v7:23.1.1' 

a:

compile 'com.android.support:appcompat-v7:24.2.1' 
compile 'com.android.support:design:24.2.1' 
compile 'com.android.support:support-v4:24.2.1' 
compile 'com.android.support:recyclerview-v7:24.2.1' 

(quelle erano le versioni più recenti al momento ho scritto questo)

e l'errore è andato.

+0

Questo alla fine lo ha risolto per me. Grazie! – Tander

12

cambiamento app:srcCompat="@android:drawable/ic_dialog_email" per

android:src="@android:drawable/ic_dialog_email" 
+1

ma la vera domanda è perché WHY è Android Studio utilizzando "app: srcCompat" ??? Mi sto stancando di dover cambiare questo. – eric

+6

Perché app: srcCompat è stato aggiunto nella libreria AppCompat 23.2, quindi se hai 23.1, semplicemente non esiste. Puoi usare android: src, ma app: srcCompat supporta immagini vettoriali, quindi è meglio – Zinc

8

È anche possibile provare

android:src = "@drawable/ic_dialog_email" 

invece di

app:srcCompat="@android:drawable/ic_dialog_email" 

ho avuto lo stesso errore e questo ha funzionato per me.

+0

Non va bene dato che non possiamo usare i drawable vettoriali in pre-lollipop con 'android: src' – rpattabi

-1

Sto utilizzando srcCompat api come segue.

<android.support.v7.widget.AppCompatImageView 
     android:id="@+id/dashboard" 
     android:layout_width="60dp" 
     android:layout_height="60dp" 
     srcCompat="@drawable/dash"> 

More info

0

Sembra appena creato un nuovo progetto. Quindi quello che per me è stato risolto è stato l'aggiornamento degli strumenti di supporto per la build, quindi la creazione di un nuovo progetto da zero.

da aggiornare: Android Studio-> Preferenze ...-> Aspetto & comportamento-> Sistema Impostazioni-> Android SDK-> Android SDK Build-Strumenti-> Selezionare la casella per aggiornare

0

ho ottenuto il simile problema.

il mio istruttore prova ad aggiornare l'API 22 all'API 25 e funziona. forse potresti provare lo stesso.

0

succede se si inizia l'aggiornamento Android Studio e annullato la metà aggiornamento completare il processo di aggiornamento e tutto dovrebbe essere tornato alla normalità