Ошибка при добавлении CardView в макет

Я хотел попробовать новые игрушки, которые дал нам Google, и я столкнулся с некоторыми проблемами.

Вот мой build.gradle:

apply plugin: 'com.android.application' android { compileSdkVersion 'android-L' buildToolsVersion "20.0.0" defaultConfig { applicationId "com.tod.android.lpreviewtest" minSdkVersion 'L' targetSdkVersion 'L' versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:cardview-v7:+' } 

Теперь мой макет:

 <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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MyActivity"> <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_gravity="center" android:layout_width="200dp" android:layout_height="200dp" card_view:cardCornerRadius="4dp"> <TextView android:id="@+id/info_text" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v7.widget.CardView> </RelativeLayout> 

Когда я переключаюсь на предварительный просмотр экрана в студии Android, я получаю ошибку рендеринга:

 Rendering Problems The following classes could not be instantiated: - android.support.v7.widget.CardView (Open Class, Show Exception) Exception Details java.lang.ClassFormatError: Illegal field name "CardView.Dark" in class android/support/v7/cardview/R$style at java.lang.ClassLoader.defineClass1(ClassLoader.java:-2)   at java.lang.ClassLoader.defineClass(ClassLoader.java:792)   at java.lang.ClassLoader.defineClass(ClassLoader.java:635)   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)   at java.lang.ClassLoader.loadClass(ClassLoader.java:411)   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)   at android.support.v7.widget.CardView.initialize(CardView.java:69)   at android.support.v7.widget.CardView.<init>(CardView.java:60)   at java.lang.reflect.Constructor.newInstance(Constructor.java:526)   at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:802)   at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:64)   at android.view.LayoutInflater.rInflate(LayoutInflater.java:778)   at android.view.LayoutInflater.inflate(LayoutInflater.java:500)   at android.view.LayoutInflater.inflate(LayoutInflater.java:381) 

Я попытался игнорировать ошибку и запустить приложение в avd, и, хотя все компилируется нормально, в макете не отображается карта. Пожалуйста помоги!

Ps Я использую новую бета-версию Android Studio 0.8.0

Solutions Collecting From Web of "Ошибка при добавлении CardView в макет"

Это ошибка в Android Studio, см. https://code.google.com/p/android/issues/detail?id=79071

Один из комментариев патча гласит: «Это привело к сбою отображения вида карты. CardView объявил стили формы CardView.Dark, из-за которой сгенерированный класс R не смог загрузить».

Следующая версия должна быть исправлена ​​в соответствии с сообщением об ошибке (патч находится на отраслевой студии-1.0-dev). Говорят, что проект один раз разрабатывался как обходной путь, но это не исправляет его для меня (хотя у меня точно такая же ошибка и трассировка стека).

Я смог заставить его работать с эмулятором, изменив свой файл build.gradle на это:

 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:cardview-v7:+' } 

Убедитесь, что у вас установлен репозиторий поддержки из диспетчера SDK! Надеюсь это поможет

EDIT: как кто-то предложил использовать «com.android.support:cardview-v7:23.1», это лучше, но это не требуется.

Попробуйте добавить эту строку в свой RelativeLayout

 xmlns:card_view="http://schemas.android.com/apk/res-auto" 

Он решил меня, добавив xmlns:card_view="http://schemas.android.com/apk/res-auto"

  <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:card_view="http://schemas.android.com/apk/res-auto"> --->> ****** .... ... <android.support.v7.widget.CardView> .. ... ..... </android.support.v7.widget.CardView> </LinearLayout> 

Мне удалось заставить это работать, добавив следующее в мой build.gradle: compile 'com.android.support:cardview-v7:21.+'

Надеюсь это поможет.

Попробуйте добавить это в свой файл build.gradle

 dependencies { ... compile 'com.android.support:cardview-v7:21.0.+' compile 'com.android.support:recyclerview-v7:21.0.+' ... }