2012-03-23 13 views
7

(Questo è un problema di strumenti SDK V17 Android. Aspettatevi una correzione in v18)

Ho un progetto di destinazione test A, e un progetto tester B.NoClassDefFoundError durante l'esecuzione di test di strumentazione con la formica

Progetto A ha FlurryAgent.jar nella sua cartella libs.

Progetto B ha robotium-solo-3.1.jar nelle sue librerie cartella

Quando compilo ed eseguirli,

cd A 
android update project -p . 
cd .. 
cd B 
android update test-project -p . -m ../A 
ant all clean debug 
ant uninstall 
ant installt 
ant test 

prova formica non riesce ad eseguire i test:

test: 
    [echo] Running tests ... 
    [exec] 
    [exec] com.example.r17.test.TestOne: 
    [exec] INSTRUMENTATION_RESULT: shortMsg=java.lang.NoClassDefFoundError 
    [exec] INSTRUMENTATION_RESULT: longMsg=java.lang.NoClassDefFoundError: com.flurry.android.FlurryAgent 
    [exec] INSTRUMENTATION_CODE: 0 

Ho letto alcuni post/domande che risolvono questo problema in Eclipse. Ma non penso di poter eseguire Eclipse sullo schiavo senza testa di Jenkins.

+0

Il nome della cartella della libreria cambiato da 'lib' a' libs', ma suona come forse già rinominato in modo corretto. –

+0

L'ho modificato alcuni mesi fa, quando ho dovuto iniziare a utilizzare gli strumenti della riga di comando e ho scoperto il form predefinito. Build.xml utilizza una cartella di librerie diversa dal plugin ADT di Eclipse. –

risposta

3

http://code.google.com/p/android/issues/detail?id=27608

ho presentato il problema a Google e hanno caricato una correzione temporanea. La correzione sarà inclusa anche nella versione v18.

"membro del progetto x ... @ android.com, oggi (34 minuti fa) ottenere il anttasks.jar dal fondo di http://tools.android.com/download per sostituire quello nel tuo sdk."

Il file da sostituire è a \ Android \ android-sdk \ Tools \ lib \

+0

grazie mille per questo ...! Pensavo di perdere la testa ...! – markshiz

1

non ho il rappresentante di commentare Qi, ma penso che questo potrebbe essere correlato alla mia domanda qui:

VerifyError in android test-project build tools v17

Xav è stato determinante per ottenere questo nuovo attivo e funzionante e si presenta come hes ottenuto un fissare

+0

VerifyError è l'errore che ottengo se copio tutto da testtarget/libs a testser/libs e viceversa. Quindi penso che tu abbia lo stesso identico problema che ho avuto. –

38

Dato questo post è stato il primo nei risultati dei motori di ricerca quando sono entrato "java.lang.NoClassDefFoundError: com.flurry.android .FlurryAgent "e il mio problema non era legato a Ant, ho pensato di aggiungere alcune informazioni per le persone che potrebbero essersi grattate la testa dopo aver reinstallato l'ADT.

Fondamentalmente, in Eclipse quando si aggiunge una libreria esterna nella finestra di dialogo Percorso build Java, non dimenticare di passare anche alla scheda Ordine ed esportazione e selezionare il nome di quella libreria nell'elenco. Questo è necessario in modo che la libreria venga trovata in fase di esecuzione, non solo in fase di compilazione :)

+0

grazie Levon ha aiutato ringrazi la u così much..i stava impazzendo a questo – cavallo

+0

Qi Fan si dovrebbe accettare questo come la risposta giusta – cavallo

+0

La ringrazio molto! – Michalsx

2

Mi ci è voluto molto tempo per capire questo stesso problema quando si utilizza Android-junit-report, ma con l'aiuto di "adb logcat" ho scoperto che in realtà non mancava la classe di strumentazione che ho incluso, ma mancava la sua superclasse ereditata. Quindi avevo bisogno di mettere di nuovo in questo AndroidManifest.xml:

<application> 
    <uses-library android:name="android.test.runner" /> 
</application> 
+0

Sei fantastico. Questo ha risolto il mio problema. Nessuno ti dice che dovrebbe essere fatto, dannazione! – user1810737

0

devo solo risolvere questo problema "08-14 agosto: 33: 43,398: E/AndroidRuntime (6748): java.lang.NoClassDefFoundError: com .flurry.android.FlurryAgent "

Flusso il web ufficiale quando voglio aggiungere il flurry alla mia app per Android, mi dice di aggiungere una libreria esterna nella finestra di dialogo Java Build Path, E poi non dimentico per passare anche alla scheda Ordine ed Esporta e selezionare il nome di quella libreria nell'elenco.Questo è necessario in modo che la libreria venga trovata in fase di esecuzione, non solo al momento della compilazione, ma comunque non funziona finché non rimuovo il jar dal percorso di build, quindi lo copio nella lib. Fatto!!!

1

Ho lo stesso caso e non funziona, anche se ho seguito il post di Levon. Poi ho capito che ho bisogno di copiare il FlurryAnalytics.jar nella cartella libs nel mio spazio di lavoro per farlo funzionare. Spero che questo ti aiuti.

+0

Grazie, non posso credere che questo sia così diverso dalle istruzioni Flurry! Questo è quello che finalmente sta funzionando per me! –

Problemi correlati