Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
288 views
in Technique[技术] by (71.8m points)

android - Error when adding CardView to layout

I wanted to try out the new toys that google gave us and I've run into some trouble.

Here is my 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:+'
}

Now my layout:

<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>

When I switch to screen preview in android studio, I get a render error:

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)

I tried ignoring the error and running the app in an avd and while everything compiles fine, no cardview appears in the layout. Please help!

P.s. I'm using the new Android Studio beta 0.8.0

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

I was able to get it to work on the emulator by changing my build.gradle to this:

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

Make sure you have the support repository installed from the SDK Manager! Hope this helps

EDIT: as someone suggested using 'com.android.support:cardview-v7:23.1' is a better practice but it not required.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...