2016-09-27 52 views
0

我想實現CardView到我的Android佈局,它給我一個渲染問題。

'下面的類不能被實例化' - android.support.v7.widget.CardView

activity_overview.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:orientation="vertical" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    tools:context="com.example.myapp.OverviewActivity"> 

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

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <TextView 
       android:id="@+id/username" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:text="@string/app_name" /> 
     </LinearLayout> 
    </android.support.v7.widget.CardView> 
</LinearLayout> 

app.gradle

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 

    compile 'com.android.support:appcompat-v7:24.2.1' 
    compile 'com.android.support:cardview-v7:24.2.1' 
    compile 'com.android.support:recyclerview-v7:24.2.1' 
    compile 'com.google.firebase:firebase-core:9.6.1' 
    compile 'com.google.firebase:firebase-auth:9.6.1' 
    compile 'com.google.firebase:firebase-crash:9.6.1' 
    compile 'com.google.firebase:firebase-database:9.6.1' 

    testCompile 'junit:junit:4.12' 
} 

異常詳情

java.lang.ClassNotFoundException: android.support.v7.cardview.R$color 
    at org.jetbrains.android.uipreview.ModuleClassLoader.load(ModuleClassLoader.java:160) 
    at com.android.tools.idea.rendering.RenderClassLoader.findClass(RenderClassLoader.java:54) 
    at org.jetbrains.android.uipreview.ModuleClassLoader.findClass(ModuleClassLoader.java:90) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at org.jetbrains.android.uipreview.ModuleClassLoader.loadClass(ModuleClassLoader.java:193) 
    at android.support.v7.widget.CardView.initialize(CardView.java:232) 
    at android.support.v7.widget.CardView.<init>(CardView.java:116) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:465) 
    at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:172) 
    at org.jetbrains.android.uipreview.ViewLoader.loadView(ViewLoader.java:105) 
    at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadView(LayoutlibCallbackImpl.java:186) 
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:334) 
    at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:345) 
    at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:245) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) 
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858) 
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:834) 
    at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:518) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
    at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:324) 
    at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429) 
    at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:389) 
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:548) 
    at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:533) 
    at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:966) 
    at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:533) 
    at com.android.tools.idea.rendering.RenderTask.lambda$inflate$72(RenderTask.java:659) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
+0

你可以嘗試移動'的xmlns:card_view'到的LinearLayout,其中該財產應 –

+0

這樣做沒有按下」即使在刷新時也能解決問題。它變灰,並給我一個「從未使用過的命名空間聲明」警告。 – Varoun

+0

對,你沒有使用它,我只是說它應該在根元素中。不知道解決方案是什麼,儘管這似乎是一個類似的問題。 http://stackoverflow.com/questions/26826261/trouble-getting-android-support-v7-cardview-library-to-work –

回答

0

只是不要先加CardView到搖籃文件,然後就生成>清理項目