Error al inflar la clase android.support.v7.widget.Toolbar. ¿Mi error o error?
Tuve el siguiente problema de representación en todos mis diseños al utilizar SDK 22 para previsualizarlos.
Error al inflar la clase android.support.v7.widget.Toolbar.
- Cómo obtener Lollipop "hamburger" como icono de cajón en la aplicación Fragmento estándar (sin utilizar AppCompat)?
- El botón de radio creado dinámicamente o CheckBox no utiliza el acento de color
- La importación android.support.v7.app no se puede resolver
- No se encontró ningún recurso que coincida con el nombre dado '@ style / Theme.AppCompat.Light'
- Android Studio Error de compilación con la biblioteca AppCompat newbie q
Java.lang.NoSuchFieldError: View_theme
En mi caso, el problema era styles.xml
:
XML con problema de representación:
<resources> <style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar" /> <!-- Base application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primary_dark</item> <item name="colorAccent">@color/accent</item> <item name="android:textColorPrimary">@color/primary_text</item> </style> </resources>
XML sin problema:
<resources> <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar" /> <!-- Base application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primary_dark</item> <item name="colorAccent">@color/accent</item> <item name="android:textColorPrimary">@color/primary_text</item> </style> </resources>
Observe cómo tuve que añadir @style/
en la referencia padre. Eso parece resolver mi problema (después de una reconstrucción).
Pregunta, ¿es un error de mi parte, o un error? Muchos tutoriales no lo ponen ( incluida la página oficial de Android )
Gradle:
compileSdkVersion 22 buildToolsVersion '22.0.1' minSdkVersion 15 targetSdkVersion 22 classpath 'com.android.tools.build:gradle:1.1.0'
Nota final: No estoy usando la barra de herramientas.
- Spinner popup color de fondo en Android 5.0
- Cómo utilizar setOutlineProvider en lugar de setOutline en Lollipop
- Canot resolver android.support.v7.internal.widget.TintImageView
- Cómo implementar la elevación Material-design para Pre-lollipop
- Appcompat v21 Elevación de la barra de herramientas pre-lollipop
- ¿Necesito AppCompatActivity y v7 Support Bibliotecas con mínimo sdk 21?
- AppCompat y EditText subrayado diferente en diferentes API
- Menú de desbordamiento textColor con AppCompat (usando la tecla de menú de hardware)
EDIT:
Lectura de otra pregunta .
Si su actividad amplía AppCompactActivity
, el tema principal debe ser
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar" />
Donde como, si se utiliza ActionBarActivity
, el tema debe ser
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar" />
Creo que la diferencia es a propósito, y no un error. Por favor, siéntase libre de corregirme si estoy equivocado, ya que no puedo conferm el mismo desde cualquier lugar todavía.
ANTIGUO :
Para usar la Barra de herramientas como barra de acción, lo primero que debe hacer es desactivar la barra de acción proporcionada por la decoración. La forma más fácil es que su tema se extienda desde Theme.AppCompat.NoActionBar (o la variante de luz).
Utilizar :
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar" />
De este post.
En mi caso, la solución era tan simple como
-
Agregar
@style
al tema principal<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
-
Eliminar
android.support.v7.widget.
De laToolbar
deToolbar
-
Pasar de la
app:theme
aandroid:theme
<Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />