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:
- ¿Qué es la compatibilidad hacia atrás en Android Studio?
- ¿Por qué el teclado no se mostrará en Fragmento con WebView?
- Sustitución de fragmentos y cambio de orientación
- Android: Solución para support.v4.app.Fragment -> Fragment classcastexception?
- Android: menuItem.expandActionView () en el nivel API <14
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 ??
- Cómo tratar las clases obsoletas en Android para mantener la compatibilidad
- GetSize () no es compatible con versiones anteriores de Android OS, getWidth () / getHeight () obsoleto
- Inflar ActionBarSherlock Menú definido en XML
- Método alternativo a TextView.getMaxLines () para Android 4.0.3 (API 15) y inferior
- BackupAgent compatible con versiones anteriores
- ¿Cómo hacer que la función de notificación de respuesta directa de Android funcione en dispositivos pre-Android N?
- Estrategias para Honeycomb y compatibilidad con versiones anteriores
- ¿Cómo puedo usar el mismo conjunto de pantallas de preferencias para todas las versiones de Android de 2.X a 4.X?
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
- Actividad Cambio de fondo dinámico
- JNI DETECTED ERROR EN APLICACIÓN: JNI GetMethodID llamado con excepción pendiente java.lang.ClassNotFoundException: No encontró la clase