RecyclerView ClassNotFound

时间:2014-10-28 09:14:41

标签: android

我尝试将RecyclerView和CardView添加到我的项目中

dependencies {
compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:support-v13:21.0.0'
compile 'com.android.support:cardview-v7:21.0.0'
compile 'com.android.support:recyclerview-v7:21.0.0'
compile 'com.viewpagerindicator:library:2.4.1@aar'
compile project(':facebook')
}

它编译,但在设备上运行时我得到了以下异常

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.RecyclerView" on path: DexPathList[[zip file "/data/app/xxxx.apk"],nativeLibraryDirectories=[/data/app-lib/xxxx, /vendor/lib, /system/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
        at android.view.LayoutInflater.createView(LayoutInflater.java:559)
        at android.view.LayoutInflater.onCreateView(LayoutInflater.java:652)

10 个答案:

答案 0 :(得分:64)

布局问题。改变

<RecyclerView 
   ...

<android.support.v7.widget.RecyclerView
   ...

如果您以编程方式创建RecyclerView - 请确保正确导入:

import android.support.v7.widget.RecyclerView;

答案 1 :(得分:5)

我做了这篇文章中所说的所有内容,但没有任何效果。

对我有用的是什么:

1.在build.gradle中添加此内容:

compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:recyclerview-v7:+'
compile 'com.android.support:cardview-v7:+'

2.将RecyclerView添加为标准视图并指明类:

    <view
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="android.support.v7.widget.RecyclerView"
    android:id="@+id/my_recycler_view"
    />

3.然后添加导入:

import android.support.v7.widget.RecyclerView;

希望这有帮助!

答案 2 :(得分:0)

这对我有用:

compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:recyclerview-v7:+'
compile 'com.android.support:cardview-v7:+'

祝你好运!

答案 3 :(得分:0)

在eclipse中,您需要从其他直接或间接导入的库中清除android-support-v4.jar的其他(较旧)版本。

我的实例;我的项目(TurkRenkleri)包括MobilePlayGround,其中包括appcompat库(其中包含旧版本的支持v4 jar)。所以我没有得到下面给出的错误,而是我得到了RecyclerView ClassNotFound。

在做this之后,我终于得到了下面的错误,并因此理解了问题解决方案(删除旧罐子)。

[2015-04-29 00:59:53 - TurkRenkleri] Found 2 versions of android-support-v4.jar in the dependency list,
 [2015-04-29 00:59:53 - TurkRenkleri] but not all the versions are identical (check is based on SHA-1 only at this time).
 [2015-04-29 00:59:53 - TurkRenkleri] All versions of the libraries must be the same at this time.
 [2015-04-29 00:59:53 - TurkRenkleri] Versions found are:
 [2015-04-29 00:59:53 - TurkRenkleri] Path: E:\calisma alani\oyunlar\android-support-v7-appcompat\libs\android-support-v4.jar
 [2015-04-29 00:59:53 - TurkRenkleri]   Length: 621451
 [2015-04-29 00:59:53 - TurkRenkleri]   SHA-1: 5896b0a4e377ac4242eb2bc785220c1c4fc052f4
 [2015-04-29 00:59:53 - TurkRenkleri] Path: E:\calisma alani\oyunlar\RecyclerView\libs\android-support-v4.jar
 [2015-04-29 00:59:53 - TurkRenkleri]   Length: 1157388
 [2015-04-29 00:59:53 - TurkRenkleri]   SHA-1: 605c447c20ca216b5556af9f215af5d4bba1b117
 [2015-04-29 00:59:53 - TurkRenkleri] Jar mismatch! Fix your dependencies

答案 4 :(得分:0)

确保编译&#39; com.android.support:recyclerview-v7:22.2.0&#39;

答案 5 :(得分:0)

这对我有用。将其添加到app gradle

compile 'com.android.support:design:23.1.1'

然后在你的布局中

<android.support.v7.widget.RecyclerView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/recyclerView"
    android:layout_centerVertical="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

并在您的活动中

import android.support.v7.widget.RecyclerView;

并在你的onCreate

里面
RecyclerView recyclerView;

答案 6 :(得分:0)

如果您正在寻找2019年的解决方案,则可以尝试将android.support.v7.widget.RecyclerView更改为androidx.recyclerview.widget.RecyclerView。这个对我有用。希望对您有帮助!

答案 7 :(得分:0)

  

如果您将android studio更新为v-3.4.2

     

然后更改为

android.support.v7.widget.RecyclerView

androidx.recyclerview.widget.RecyclerView

这对我有用。

答案 8 :(得分:0)

您可以使用androidx recyclerview小部件,这有效!

 <androidx.recyclerview.widget.RecyclerView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:scrollbars="vertical"
    android:id="@+id/listExp"
    />

并导入到代码

import androidx.recyclerview.widget.RecyclerView;

然后可以使用了,

 private RecyclerView recyclerViewExp;

答案 9 :(得分:-2)

  

这是一个建筑问题......

     

是的,在少数情况下,代码以前工作,突然之间   当我同步并构建一个时,我停止了工作(在app启动时崩溃)   旧版本的代码。

     

解决方法是关闭并重新启动Eclipse并清理项目   并清理所有依赖的库项目。然后它开始工作了   再适当的。

     

Eclipse中的某种构建问题,当刷新它时   项目文件。

     

更新:特别是,如果你不小心修改了   &#34;的.classpath&#34;文件(恢复到旧版本),Eclipse / Android SDK   可能会混淆,而不是正确构建项目。当你重新启动   Eclipse和清理项目,Eclipse将重新修改&#34; .classpath&#34;   文件,并正确构建。