Estou criando um aplicativo com o novo Material Design usado no Android Lollipop (5.0).
Estou usando os seguintes guias:
- http://android-developers.blogspot.it/2014/10/appcompat-v21-material-design-for-pre.html
- http://antonioleiva.com/material-design-everywhere/
Depois de criar minha barra de ferramentas, recebo este erro: "As seguintes classes não puderam ser instanciadas: - android.support.v7.widget.Toolbar"
O aplicativo funciona bem no telefone ou emulador, mas o designer de layout do Android Studio não mostra o layout corretamente.
Aqui estão algumas imagens:
Erro na visualização do layout my_awesome_toolbar.xml
Erro na visualização do layout activity_my.xml
O código xml dos arquivos:
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 dos estilos (values / styles.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>
No momento, uso o Android Studio Beta 0.8.9
Toolbar
renderização.Respostas:
Para Android Studio (ou IntelliJ IDEA),
Se tudo parece OK em seu projeto e você ainda está recebendo o erro em todos os seus layouts, tente 'Invalidar caches e reiniciar'.
Espere até que o Android Studio termine de criar todos os caches e índices.
fonte
Alterei o arquivo res / values / styles.xml deste:
para isso:
e isso resolveu o problema.
fonte
NoActionBar
emBase
. Para que serve a substituiçãoTheme.AppCompat.NoActionBar
?Fiz o que @gbero disse e mudei o número da versão do Android que o Studio usa de 22 para 17 e funciona.
Estou usando a compatibilidade com versões anteriores para compilar para Android versão 22, mas para atingir 17 (idk se isso for dito corretamente, ainda estou tentando descobrir essas coisas do aplicativo), de modo que acionou a compatibilidade com versões anteriores, que afaik é o que
android.support.v7.*
é. Este é provavelmente um bug com seu código de renderização. Não tenho certeza se limpar o cache conforme sugerido acima era necessário, pois a renderização não funcionou logo após invalidar o cache, ela começou a funcionar depois que eu alterei a versão para renderizar. Se eu mudar de volta para a versão 22, a renderização é interrompida, se eu voltar para a versão 17, funciona novamente.fonte
minSdkVersion
versão for 17, eu sugeriria executar o aplicativo em um emulador com API de nível 17 ou um dispositivo real com API de nível 17 e confirmar se a IU parece conforme o esperado e não como o que é renderizado no Android StudioDe: https://stackoverflow.com/a/29989542/4123403
Isso funcionou para mim.
fonte
Outro erro que pode ter o mesmo efeito pode ser o tema errado na visualização. Por alguma razão, selecionei algum outro tema aqui. Depois de escolher meu AppTheme, ele funcionou bem novamente:
fonte
Desculpe se eu me respondi, mas, finalmente, a solução do meu problema foi atualizar o Android Studio para a nova versão 0.8.14 do Canary Channel: http://tools.android.com/recent/
Após a atualização, o problema desapareceu:
Deixo esta pergunta aqui para quem terá esse problema no futuro.
fonte
funciona para mim
fonte
Fiz o que @ang_lee disse e também adicionei esta linha ao estilo do tema do aplicativo:
estou usando a versão 26.0.1:
ferramentas de construção:
fonte
<item name="windowNoTitle">true</item
Eu tive o mesmo erro na tela do meu Android Studio quando queria pré-atualizar meu projeto. Eu resolvo o problema desta forma:
1- Eu mudo a versão de 22 para 21. Mas se eu mudar de volta para a versão 22, a renderização quebra, se eu voltar para a 21, funciona de novo. Obrigado @Overloaded_Operator
Atualizei meu Android Studio, mas não está funcionando. Obrigado @ Salvuccio96
fonte
nenhuma das opções acima funcionou para mim, eu atualizei a versão appCompat - v7 no meu arquivo gradle do aplicativo de 23 para 25.3.1. ajudou a fazer funcionar para mim
fonte
Encontre styles.xml na pasta app / res / values.
Pode estar faltando "Base" no atributo pai do estilo. Deve começar como
fonte
Eu tive o mesmo erro. Eventualmente, recebi este aviso de que um plugin estava desatualizado:
Depois que eu atualizei, o problema foi embora.
fonte
As soluções acima não me ajudaram. Tentei 2 primeiros passos a partir deste link . Funcionou bem para mim. Mas não se esqueça de
ao invés de
em seu MainActivity.java
fonte
Eu uso o Android Studio 2.3.3: - Abrir styles.xml - O Android Studio mostrará uma notificação no canto superior direito com duas opções: "abrir editor" e "Ocultar notificação". - Clique em "abrir editor" - No menu suspenso do tema principal, clique em mostrar todos os temas - Selecione qualquer tema começando com AppCompat ... (eu usei AppComat.DayNight)
NB: Se sua barra de título desaparecer, você precisa estender AppCompatActivity em vez de Activity.
Muito bem sucedida!
fonte
Tive o mesmo problema para uma das atividades em meu aplicativo, uma das causas desse problema é que o tema no editor de temas pode ser diferente do tema definido em 'styles.xml'.mudar o tema no editor de temas ao seu 'Apptheme' ou ao seu tema personalizado definido (se você tiver definido). Fazer isso corrigiu meu problema.
fonte
Meu problema também foi resolvido alterando em styles.xml
fonte