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

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

这是我的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 studio中切换到屏幕预览时,我得到一个渲染错误

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中运行该应用程序,而一切编译正常,布局中不会显示卡片视图.请帮忙!

附:我正在使用新的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上).他们说要建立项目一次作为解决方法,但这并不能解决它(即使我有完全相同的错误和堆栈跟踪).

原文链接:https://www.f2er.com/android/310897.html

猜你在找的Android相关文章