SDK 19 y siguientes no reconoce android.support.v7.widget.CardView, Error al inflar la clase <unknown>

En mi archivo Xml tengo cardView

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_height="wrap_content" android:paddingLeft="4dp" android:paddingRight="4dp" android:paddingBottom="2dp"> <android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:foreground="?android:attr/selectableItemBackground" android:id="@+id/channel_cardview" app:cardBackgroundColor="@android:color/white" app:cardElevation="2dp" app:cardMaxElevation="2dp" app:cardUseCompatPadding="true"> .... some other elements here </RelativeLayout> 

Cuando ejecuto mi aplicación en SDK 23 que funcionó bien, pero cuando estoy corriendo esto en SDK 19 o SDK 16, entonces no funciona y lanzar este error:

 E/AndroidRuntime: FATAL EXCEPTION: main android.view.InflateException: Binary XML file line #10: Error inflating class <unknown> at android.view.LayoutInflater.createView(LayoutInflater.java:613) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687) at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:396) at pb.pocketboard.ChannelFragment$ChannelsAdapter.onCreateViewHolder(ChannelFragment.java:578) at pb.pocketboard.ChannelFragment$ChannelsAdapter.onCreateViewHolder(ChannelFragment.java:537) at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5482) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4707) 

Error está apuntando a la línea no. 10 que es de cardViewCLass , tal vez el sistema no está reconociendo la clase Cardview así que busqué problemas relacionados y allí el problema no era añadir las dependencias, pero ya lo había añadido

Mi Gradle:

 dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:design:23.4.0' compile 'com.mikhaellopez:circularimageview:2.1.1' compile 'com.isseiaoki:simplecropview:1.0.16' compile 'com.android.support:recyclerview-v7:23.4.0' compile 'com.android.support:cardview-v7:23.4.0' compile 'com.android.support:support-v4:23.4.0' compile('com.github.afollestad.material-dialogs:core:0.8.5.3@aar') { transitive = true } compile files('libs/commons-io-2.4.jar') } 

Mi clase de Java donde estoy inflando el diseño

  @Override public ChannelsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View rowView = inflater.inflate(R.layout.custom_channel_row, parent, false); // error is here ChannelsViewHolder holder = new ChannelsViewHolder(rowView , this); return holder; } 

Cualquier pista ¿por qué está sucediendo esto ??

CardView se agrega en la versión lollipop. El mismo problema se producirá cuando intente utilizar RecyclerView (o cualquier otra vista que se haya agregado en API 20 (v5.0) o posterior). Aunque se agregan en la biblioteca de soporte.

Ahora, una vez que usted da un pensamiento que por qué se han añadido a la biblioteca de apoyo?

Su porque los desarrolladores pueden utilizarlos en versiones anteriores de móviles android no porque el desarrollador puede utilizarlos en versiones anteriores de SDK . Básicamente, el desarrollador siempre va a desarrollar las aplicaciones en el SDK actualizado.

Creo que esto podría ser la razón 🙂

Vaya a la estructura del proyecto y haga clic en add library dependency y elija com.android.support:cardview-v7:23.2.1 presione ok resolverá su problema. Haga clic en los enlaces a continuación para undersatnd

http://i.stack.imgur.com/AhYIN.png

http://i.stack.imgur.com/jDCGN.png

  • ¿Honeycomb SDK rompió la compatibilidad con versiones anteriores de GridView?
  • Inflar fragmentos con el paquete de compatibilidad android
  • Android Lollipop - comportamiento cambiado de SQLite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.