3
respostas

Erro de compilação do CardView

Quando eu insiro o código do CardView:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</android.support.v7.widget.CardView>

O layout não compila e no Preview aparece esta mensagem: Rendering Problems The following classes could not be found: - android.support.v7.widget.CardView (Fix Build Path, Create Class) Tip: Try to build the project.

O que fazer?

3 respostas

Olá,

Você está usando CardView, que é uma View personalizada do Android, ou seja não está no SDK padrão, você precisa deixar claro que quer utilizar essa dependência, para isso você precisa importar o cardview para dentro da aplicação.

Utilizando atalho Crtl + alt + shift + S

Você terá uma tela de configuração do projeto, para manipular as dependencias, você precisa clicar em app, na barra a esquerda, com isso você verá no painel principal uma aba escrito dependencies, lá você apenas precisa adicionar que quer o cardview.

Para pesquisar clique no + e digite cardview e daí basta escolher a opção do google.

Abraços

segui os passos, no entanto quando eu vou adicionar o cardElevation e o cardUseCompatPadding o layout não compila e mostra essa msg de erro:

Missing styles. Is the correct theme chosen for this layout?

Use the Theme combo box above the layout to choose a different layout, or fix the theme style references.

NOTE: This project contains resource errors, so aapt did not succeed, which can cause rendering failures. Fix resource problems first.

The following classes could not be instantiated: - android.support.v7.widget.CardView (Open Class, Show Exception, Clear Cache)

Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE

Exception Details java.lang.NoClassDefFoundError: android/support/v7/cardview/R$colorat android.support.v7.widget.CardView.initialize(CardView.java:232) at android.support.v7.widget.CardView.(CardView.java:116)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) at android.view.LayoutInflater.inflate(LayoutInflater.java:495)at android.view.LayoutInflater.inflate(LayoutInflater.java:397)

Copy stack to clipboard

Failed to find style with id 0x7fff0067 in current theme

Olá,

Imagino que você esteja fazendo da seguinte forma :

android:cardElevation

E a definição da view assim :

<CardView />

Certo ?

Quando pegamos qualquer lib externa do pacote do android, temos que fazer igual no java, importar a classe completa. Logo no momento de adicionarmos a view, ela deve estar mais ou menos assim :

<android.support.v7.widget.CardView />

E por ser uma view externa, os atributos também não estão por default, nesse casso teremos que fazer assim :

app:cardElevation

Com isso você terá um problema, por ainda não ter declarado esse namespace, mas utilizando o atalho alt enter ele vai gerar para ti.

Espero ter ajudado

Abraços