Ich habe eine Android-Anwendung, die ich kürzlich auf das Gradle-Build-System aufgerüstet habe, unter anderem mit einer neueren Version von Build-Tools, etc.
Meine targetSdkVersion ist 19, also sollte ich gut sein, auf Android 4.4 und höher zu gehen. Wenn ich mit einem 5.0+ Gerät laufe, ist alles in Ordnung; Allerdings stürzt Android 4.4 immer mit einem java.lang.NoClassDefFoundError
-Fehler ab.
Als Test habe ich die originale Klasse entfernt, von der sie sich beschwert hat, dass sie fehlt, nur um sie abstürzen zu lassen, während sie auf eine andere Klasse zeigt.
Die erste Klasse, auf der es abgestürzt ist, war eine interne private Klasse in einer 3rd-Party-Bibliothek. Nach dem Entfernen dieser Bibliothek zeigte sie auf eine interne private Klasse in der App selbst.
Zusammenfassend:
java.lang.NoClassDefFoundError
bei etwas weniger als 5.0 ab. Hier ist meine android.manifest-Datei: Ссылка
Für was es sich lohnt, kann dies passieren, wenn Sie Multi-Dex-Unterstützung aktivieren, ohne den richtigen Code in Ihrer Application-Klasse hinzuzufügen.
Erstellen Sie eine Klasse, lassen Sie sie von der Anwendung erben und fügen Sie dann diese Überschreibung hinzu:
%Vor% Fügen Sie in Ihrem AndroidManifest ein name
-Attribut zu Ihrem Anwendungs-Tag hinzu:
Tags und Links android-studio