android – 将CardView添加到布局时出错

前端之家收集整理的这篇文章主要介绍了android – 将CardView添加到布局时出错前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想尝试谷歌给我们的新玩具,我遇到了麻烦.

这是我的build.gradle:

  1. apply plugin: 'com.android.application'
  2.  
  3. android {
  4. compileSdkVersion 'android-L'
  5. buildToolsVersion "20.0.0"
  6.  
  7. defaultConfig {
  8. applicationId "com.tod.android.lpreviewtest"
  9. minSdkVersion 'L'
  10. targetSdkVersion 'L'
  11. versionCode 1
  12. versionName "1.0"
  13. }
  14. buildTypes {
  15. release {
  16. runProguard false
  17. proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
  18. }
  19. }
  20. }
  21.  
  22. dependencies {
  23. compile fileTree(dir: 'libs',include: ['*.jar'])
  24. compile 'com.android.support:cardview-v7:+'
  25. }

现在我的布局:

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:paddingLeft="@dimen/activity_horizontal_margin"
  6. android:paddingRight="@dimen/activity_horizontal_margin"
  7. android:paddingTop="@dimen/activity_vertical_margin"
  8. android:paddingBottom="@dimen/activity_vertical_margin"
  9. tools:context=".MyActivity">
  10. <android.support.v7.widget.CardView
  11. xmlns:card_view="http://schemas.android.com/apk/res-auto"
  12. android:id="@+id/card_view"
  13. android:layout_gravity="center"
  14. android:layout_width="200dp"
  15. android:layout_height="200dp"
  16. card_view:cardCornerRadius="4dp">
  17.  
  18. <TextView
  19. android:id="@+id/info_text"
  20. android:layout_width="match_parent"
  21. android:layout_height="match_parent" />
  22. </android.support.v7.widget.CardView>
  23. </RelativeLayout>

当我在android studio中切换到屏幕预览时,我得到一个渲染错误

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

我尝试忽略错误,并在avd中运行该应用程序,而一切编译正常,布局中不会显示卡片视图.请帮忙!

附:我正在使用新的Android Studio beta 0.8.0

解决方法

这是Android Studio中的一个错误,请参阅 https://code.google.com/p/android/issues/detail?id=79071

补丁的一个注释是:“这导致卡视图渲染失败,CardView声明了CardView.Dark形式的样式,由此生成的R类无法加载.

下一个版本应该根据bug报告修复(补丁在分支studio-1.0-dev上).他们说要建立项目一次作为解决方法,但这并不能解决它(即使我有完全相同的错误和堆栈跟踪).

猜你在找的Android相关文章