Estoy creando una aplicación con el nuevo Material Design utilizado en Android Lollipop (5.0).
Estoy usando las siguientes guías:
- http://android-developers.blogspot.it/2014/10/appcompat-v21-material-design-for-pre.html
- http://antonioleiva.com/material-design-everywhere/
Después de crear mi barra de herramientas, recibo este error: "No se pudo crear una instancia de las siguientes clases: - android.support.v7.widget.Toolbar"
La aplicación funciona bien en el teléfono o en el emulador, pero el diseñador de diseño de Android Studio no muestra el diseño correctamente.
Aquí hay algunas imágenes:
Error en la vista previa del diseño my_awesome_toolbar.xml
Error en la vista previa del diseño activity_my.xml
El código xml de los archivos:
my_awesome_toolbar.xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/my_awesome_toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary" />
activity_my.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/root"
tools:context="com.myapp.test.MyActivity"
android:orientation="horizontal">
<include
android:id="@+id/toolbar"
layout="@layout/my_awesome_toolbar"
/>
<!-- Rest of layout -->
</RelativeLayout>
MyActivity.java:
package com.myapp.test;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
public class MyActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
código xml de los estilos (valores / estilos.xml):
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/blue</item>
<item name="colorPrimaryDark">@color/dark_blue</item>
<item name="actionOverflowButtonStyle">@style/AppTheme.OverflowButtonStyle</item>
</style>
<!-- Style Title -->
<style name="Title">
<item name="android:textColor">@color/white</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">16sp</item>
</style>
<style name="AppTheme.OverflowButtonStyle" parent="Widget.AppCompat.ActionButton.Overflow">
<item name="android:src">@drawable/overflow_icon</item>
</style>
</resources>
En este momento uso Android Studio Beta 0.8.9
Toolbar
renderizar.Respuestas:
Para Android Studio (o IntelliJ IDEA),
Si todo se ve bien en su proyecto y sigue recibiendo el error en todos sus diseños, intente 'Invalidar cachés y reiniciar'.
Espere hasta que Android Studio haya terminado para crear todas las cachés e índices.
fuente
Cambié el archivo res / values / styles.xml de esto:
a esto:
y eso resolvió el problema.
fuente
NoActionBar
enBase
. ¿Para qué es el reemplazoTheme.AppCompat.NoActionBar
?Hice lo que dijo @gbero, y cambié el número de versión de Android que usa Studio de 22 a 17 y funciona.
Estoy usando la compatibilidad con versiones anteriores para compilar para Android ver 22, pero para apuntar a 17 (idk, si se dice correctamente, todavía estoy tratando de resolver esta aplicación), por lo que desencadenó la compatibilidad con versiones anteriores, que afaik es lo que
android.support.v7.*
es. Probablemente sea un error con su código de renderizado. No estoy seguro de si era necesario borrar el caché como se sugirió anteriormente, ya que el renderizado no funcionó justo después de invalidar el caché, comenzó a funcionar después de que cambié la versión para renderizar. Si vuelvo a cambiar a la versión 22, el renderizado se interrumpe, si vuelvo a cambiar a la 17, vuelve a funcionar.fuente
minSdkVersion
versión es 17, sugeriría ejecutar la aplicación en un emulador con nivel de API 17 o un dispositivo real con nivel de API 17 y confirmar si la interfaz de usuario se ve como se esperaba y no como lo que se representa en Android StudioDe: https://stackoverflow.com/a/29989542/4123403
Esto funcionó para mí.
fuente
Otro error que puede tener el mismo efecto puede ser el tema incorrecto en la vista previa. Por alguna razón, había seleccionado otro tema aquí. Después de elegir mi AppTheme, funcionó bien nuevamente:
fuente
Perdón si me respondo, pero, finalmente, la solución a mi problema fue actualizar Android Studio a la nueva versión 0.8.14 por Canary Channel: http://tools.android.com/recent/
Después de la actualización, el problema desapareció:
Dejo esta pregunta aquí para quienes tengan este problema en el futuro.
fuente
funciona para mi
fuente
Hice lo que dijo @ang_lee y también agregué esta línea al estilo del tema de la aplicación:
estoy usando la versión 26.0.1:
herramientas de construcción:
fuente
<item name="windowNoTitle">true</item
Tuve el mismo error en la pantalla de mi Android Studio cuando quise evitar mi proyecto. Soluciono el problema de esta manera:
1- Cambié la versión de 22 a 21. Pero si vuelvo a la versión 22, el renderizado se rompe, si vuelvo a cambiar a 21, vuelve a funcionar. Gracias @Overloaded_Operator
Actualicé mi Android Studio pero no funciona. Gracias @ Salvuccio96
fuente
nada de lo anterior funcionó para mí, actualicé la versión appCompat - v7 en el archivo gradle de mi aplicación de 23 a 25.3.1. ayudó a que funcionara para mí
fuente
Busque styles.xml en la carpeta app / res / values.
Es posible que falte "Base" en el atributo principal del estilo. Debería comenzar como
fuente
Yo tenía el mismo error. Finalmente recibí este aviso de que un complemento estaba desactualizado:
Después de la actualización, el problema desapareció.
fuente
Las soluciones anteriores no me ayudaron. Probé 2 primeros pasos desde este enlace . Funcionó bien para mí. Pero no te olvides de
en vez de
en su MainActivity.java
fuente
Yo uso Android Studio 2.3.3: - Abrir styles.xml - Android Studio mostrará una notificación en la parte superior derecha con dos opciones: "abrir editor" y "Ocultar notificación". - Haga clic en "abrir editor" - En el menú desplegable principal del tema, haga clic en mostrar todos los temas - Seleccione cualquier tema que comience con AppCompat ... (Usé AppComat.DayNight)
NB: Si su barra de título desaparece, necesita extender AppCompatActivity en lugar de Activity.
¡Todo lo mejor!
fuente
Tuve el mismo problema para una de las actividades en mi aplicación, una de las causas de este problema es que el tema en el editor de temas puede ser diferente al tema definido en 'styles.xml'. Cambiar el tema en el editor de temas a su 'Apptheme' o su tema personalizado definido (si lo ha definido). Hacer esto solucionó mi problema.
fuente
Mi problema también se ha resuelto cambiando en styles.xml
fuente