Ho un'applicazione Android che ho recentemente aggiornato al sistema Gradle costruiranno tra le altre cose, come l'utilizzo di una nuova versione di strumenti di compilazione, eccjava.lang.NoClassDefFoundError su Android 4.4 o inferiore
mio targetSdkVersion ha 19 anni, quindi dovrei andare bene su Android 4.4 e versioni successive. Quando corro usando un dispositivo 5.0+, tutto va bene; tuttavia Android 4.4 si blocca sempre con un errore di tipo java.lang.NoClassDefFoundError
.
Come test, ho rimosso la classe originale che si lamentava del fatto che mancava solo di farlo arrestarsi mentre indicava una classe diversa.
La prima classe su cui è andato in crash è stata una classe privata interna in una libreria di terze parti. Dopo aver rimosso quella libreria, puntava a una classe privata interna nell'app stessa.
In sintesi:
- l'applicazione funziona bene su Android 5.0+. Si blocca con
java.lang.NoClassDefFoundError
su qualsiasi valore inferiore a 5.0. - Nei test finora, NoClassDef sembra sempre riferirsi a una classe interna - questo si basa solo su due test, quindi potrebbe non essere nulla di concreto.
Ecco il mio file android.manifest: https://gist.github.com/rscott78/19dd88ccde66172d9332
per coloro che sono ancora ha bisogno di aggiungere multidexenabled durante la correzione di questo errore allo stesso tempo, questa soluzione salverà completamente la tua giornata! – user724861
Ma quale extra questo codice ha fatto a proposito ?? volevo solo sapere. E sì, chiunque voglia abilitare il multidex insieme alla correzione, allora questa è la soluzione. +1 –
Abbiamo effettivamente implementato la nostra app in questo modo, ma abbiamo ancora ottenuto il crash. Perché? –