2014-10-28 3 views
26

Я пытался добавить RecyclerView и CardView в мой проектRecyclerView ClassNotFound

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:[email protected]' 
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) 

ответ

58

Проблема в вашем макете. Изменение

<RecyclerView 
    ... 

Для

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

Если вы создаете RecyclerView программно - убедитесь, что у вас есть надлежащий импорт:

import android.support.v7.widget.RecyclerView; 
+0

да, похоже, что я использую последние buildtools, и у него есть android.view.RecyclerView, поэтому в студии Android нет ошибки, но я запускаю его на устройстве 4.4.4 ... –

+0

В моем макете, Я написал то же самое, все еще сталкиваясь с такой же проблемой. В классе CS я могу найти файл android.support.v7.widget, но не файл android.support.v7.widget.RecyclerView –

-2

Это проблема здания. ..

Да в нескольких случаях, Код работал ранее, и вдруг он прекратил работать (авария в приложении startu p) когда я синхронизировал и построил старую версию кода .

Исправление должно было только закрыть и перезапустить Eclipse и очистить проект и очистить все проекты зависимых библиотек. Затем он снова начал работу .

Это что-то вроде проблемы с сборкой в ​​Eclipse при обновлении файлов проекта .

Update: В частности, если вы случайно изменили файл «.classpath» (вернуться к старой версии), Eclipse/Android SDK может запутаться и не строить проект должным образом. Когда вы перезапустите Eclipse и очистите проект, Eclipse будет повторно модифицировать файл «.classpath» и правильно построить.

+0

Если вы собираетесь обеспечить ответ от другого связанного вопроса, пожалуйста, связывайтесь с http://stackoverflow.com/a/20421764 вместо copy + paste. – tir38

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:+' 

наилучшими пожеланиями !

+0

Кстати, рендеринг в Android Studio имеет несколько isssues http://code.google.com/p/ Андроид/проблемы/детали? id = 72117 http://code.google.com/p/android/issues/detail?id=85118, в моем случае в версии 1.1.0 a нет предварительных просмотров для recyclerview – lgallard

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 
3

Я сделал все, что было сказано в этом посте, но ничего не работало.

Что для меня работа:

1.Add это как сказать, в вашей сборке.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.Add RecyclerView как STANDAR View и указать класс:

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

3.Then добавить импорт:

import android.support.v7.widget.RecyclerView; 

Надеется, что это помогает!

+0

У меня было забытая переработка была собственной линией компиляции. Не нужно было делать другие вещи. –

0

Убедитесь в компиляции '' com.android.support:recyclerview-v7:22.2.0

0

Это работает для меня. Добавьте это к приложению 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;