2014-10-28 9 views
26

Ho provato ad aggiungere RecyclerView e CardView nel mio progettoRecyclerView 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') 
} 

si compila, ma ho ottenuto sotto eccezione quando eseguire sul dispositivo

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) 

risposta

58

Problema nel layout. Cambiare

<RecyclerView 
    ... 

Per

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

Se si crea RecyclerView di programmazione - assicuratevi di avere una corretta importazione:

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

sì, sembra che sto usando gli ultimi buildtools e ha il android.view.RecyclerView, quindi non c'è alcun errore in Android Studio, ma lo sto eseguendo su un dispositivo 4.4.4 ... –

+0

Nel mio layout, Ho scritto lo stesso, ancora affrontando lo stesso problema. Nella classe CS sono in grado di trovare android.support.v7.widget ma non android.support.v7.widget.RecyclerView –

-2

Si tratta di un problema di costruzione. ..

Sì in alcuni casi, il codice funzionava in precedenza e improvvisamente ha smesso di funzionare (arresto anomalo all'avvio dell'app p) quando ho sincronizzato e creato una versione precedente del codice con .

La correzione era di chiudere e riavviare Eclipse e pulire il progetto e pulire tutti i progetti di libreria dipendenti. Quindi ha iniziato a funzionare correttamente .

Si tratta di una sorta di problema di generazione in Eclipse, durante l'aggiornamento dei file di progetto .

Aggiornamento: In particolare, se hai accidentalmente modificato il file ".classpath" (per tornare a una versione precedente), Eclipse/Android SDK può confondersi e non costruire il progetto in modo corretto. Quando si riavvia Eclipse e si pulisce il progetto, Eclipse modificherà nuovamente il file ".classpath" e lo svilupperà correttamente.

+0

Se avete intenzione di fornire una risposta da un'altra domanda correlata, si prega di link http://stackoverflow.com/a/20421764 invece di copia + incolla. – tir38

0

Questo ha funzionato per me:

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

Cordiali saluti !

+0

A proposito, il rendering in Android Studio ha alcuni problemi http://code.google.com/p/ android/issues/detail? id = 72117 http://code.google.com/p/android/issues/detail?id=85118, nel mio caso nella versione 1.1.0 a non ho anteprime per recyclerview – lgallard

0

in eclissi, è necessario cancellare altre (precedenti) versioni di android-support-v4.jar da altre librerie che si importano direttamente o indirettamente.

per la mia istanza; il mio progetto (TurkRenkleri) include MobilePlayGround che include la libreria appcompat (che ha una versione precedente del supporto v4 jar). Quindi non ho ricevuto l'errore indicato di seguito, invece ho ottenuto RecyclerView ClassNotFound.

dopo aver fatto this, ho finalmente ricevuto l'errore di seguito, e ho capito il problema quindi la soluzione (eliminare vecchi vasi).

[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

Ho fatto tutto quello che è stato detto in questo post ma niente ha funzionato.

cosa ha funzionato per me:

1.Add questo come dicono nella vostra 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.Add la RecyclerView come standar View e indicare la classe:

<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 aggiungere le importazioni:

import android.support.v7.widget.RecyclerView; 

Spero che questo aiuti!

+0

ho avuto Recyclerview dimenticato era la sua linea di compilazione. Non ho bisogno di fare altre cose. –

0

Assicurarsi è compilare 'com.android.support:recyclerview-v7:22.2.0'

0

Questo ha funzionato per me. Aggiungi questo per app Gradle

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

Poi nel layout

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

e nella vostra attività

import android.support.v7.widget.RecyclerView; 

e all'interno della vostra onCreate

RecyclerView recyclerView; 
Problemi correlati