2014-10-28 9 views
26

Próbowałem dodać RecyclerView i CardView do mojego projektuRecyclerView 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') 
} 

kompiluje, ale mam poniżej wyjątkiem gdy go uruchomić na urządzeniu

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) 

Odpowiedz

58

Problem w twoim układzie. Zmień

<RecyclerView 
    ... 

Aby

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

Jeśli tworzysz RecyclerView programowo - sprawdź, czy masz prawidłową import:

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

Tak, wygląda na to, że używam najnowszego buildtools i mam android.view.RecyclerView, więc nie ma błędów w Android studio, ale używam go na urządzeniu 4.4.4 ... –

+0

W moim układzie, Napisałem to samo, wciąż stojąc przed tym samym problemem. W klasie CS mogę znaleźć android.support.v7.widget, ale nie android.support.v7.widget.RecyclerView –

-2

Jest to problem budynku. ..

Tak, w kilku przypadkach Kod działał wcześniej i nagle przestał działać (awaria przy uruchomieniu aplikacji p) po zsynchronizowaniu i zbudowaniu starszej wersji kodu .

Poprawka miała się po prostu zamknąć i ponownie uruchomić Eclipse i wyczyścić projekt i wyczyścić wszystkie zależne projekty biblioteczne. Następnie znowu zaczął poprawnie działać.

Jest to pewnego rodzaju problem kompilacji w środowisku Eclipse podczas odświeżania plików projektu .

Aktualizacja: W szczególności, jeśli już przypadkowo zmodyfikowany „.classpath” plik (aby powrócić do starszej wersji), Eclipse/Android SDK może się mylić i nie zbudować projekt prawidłowo. Po ponownym uruchomieniu Eclipse i wyczyszczeniu projektu Eclipse ponownie zmodyfikuje plik ".classpath" i odpowiednio skompiluje.

+0

Jeśli masz zamiar dostarczyć odpowiedź z innego pokrewnego pytania, proszę połączyć http://stackoverflow.com/a/20421764 zamiast kopiować i wklejać. – tir38

0

Ten pracował dla mnie:

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

pozdrowieniami !

+0

Nawiasem mówiąc, renderowanie w Android Studio ma pewne problemy: http://code.google.com/p/ android/issues/detail? id = 72117 http://code.google.com/p/android/issues/detail?id=85118, w moim przypadku w wersji 1.1.0 a nie mam podglądu pod kątem recyklingu – lgallard

0

w czasie zaćmienia, musisz wyczyścić inne (starsze) wersje android-support-v4.jar z innych bibliotek, które importujesz bezpośrednio lub pośrednio.

dla mojej instancji; mój projekt (TurkRenkleri) obejmuje MobilePlayGround, który zawiera bibliotekę appcompat (która ma starszą wersję słoika wsparcia v4). Więc nie dostałem błędu podanego poniżej, zamiast tego mam RecyclerView ClassNotFound.

po wykonaniu this, w końcu dostałem błąd poniżej i zrozumiałem problem, dlatego rozwiązanie (usunąć stare słoiki).

[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

Zrobiłem wszystko, co zostało powiedziane w tym poście, ale nic nie działało.

Co nie działa dla mnie:

1.Add to jako powiedzenia w swojej budowie.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.Dodaj zdjęcia RecyclerView jako standar Widok i wskazać klasę:

<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 dodać importu:

import android.support.v7.widget.RecyclerView; 

Nadzieja to pomaga!

+0

miałem zapomniany recyclerview był jego własną linią kompilacji. Nie trzeba robić innych rzeczy. –

0

Upewnij jest kompilacji 'com.android.support:recyclerview-v7:22.2.0'

0

Ten pracował dla mnie. Dodaj do tego app Gradle

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

Następnie w układzie

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

aw swojej działalności

import android.support.v7.widget.RecyclerView; 

i wewnątrz onCreate

RecyclerView recyclerView;