2017-11-04 2 views
1

Ich bin neu in der Android-Entwicklung und lerne Android Studio zu verwenden. Ich entwickle eine einfache App, die den Preis der bestellten Kaffeetassen angibt. Wenn ich die App auf dem virtuellen Gerät laufe, funktioniert es einwandfrei, hat aber ein Problem, wenn ich es auf meinem Handy starte. Die App wird richtig geladen, aber wenn ich auf die Schaltfläche "Bestellen" klicke, erhalte ich einen Fehler: "Just Java wurde leider gestoppt." Als ich gegoogelt habe, habe ich erfahren, dass es etwas namens Logcat gibt. Beim Betrachten von Logcat habe ich mehrere Fehler gefunden, die ich nicht lösen kann.App-Eröffnung, aber nicht auf dem physischen Gerät

11-04 21:49:08.255 8217-8217/? E/System: elements.add : /data/app/com.example.darshan.justjava-2/base.apk /data/app/com.example.darshan.justjava-2/base.apk /data/app/com.example.darshan.justjava-2/base.apk

11-04 21:49:08.452 8217-8217/? E/System: elements.add : /data/app/com.example.darshan.justjava-2/split_lib_dependencies_apk.apk /data/app/com.example.darshan.justjava-2/split_lib_dependencies_apk.apk /data/app/com.example.darshan.justjava-2/split_lib_dependencies_apk.apk

11-04 21:49:08.454 8217-8217/? E/System: elements.add : /data/app/com.example.darshan.justjava-2/split_lib_slice_0_apk.apk /data/app/com.example.darshan.justjava-2/split_lib_slice_0_apk.apk /data/app/com.example.darshan.justjava-2/split_lib_slice_0_apk.apk

Der dritte Fehler in dieser Liste hat 10 Mal in der Logcat dargestellt.

dann weiter, wenn ich Taste auf der ‚Order‘ klicken, gibt es einen Laufzeitfehler, wie unten dargestellt:

11-04 21:53:45.667 8217-8217/com.example.darshan.justjava E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.darshan.justjava, PID: 8217 java.lang.IllegalStateException: Could not execute method for android:onClick

Und darunter gibt es Ausnahmen wie

Caused by: java.lang.reflect.InvocationTargetException

Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/icu/text/NumberFormat;

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.icu.text.NumberFormat" on path: DexPathList[[zip file "/data/app/com.example.darshan.justjava-2/base.apk", zip file "/data/app/com.example.darshan

Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

Caused by: java.lang.reflect.InvocationTargetException

kann jemand helfen ich meine App auf meinem Handy laufen lassen? Und warum läuft meine App auch dann auf dem virtuellen Gerät, wenn es Laufzeitausnahmen gibt?

Vielen Dank im Voraus.

PS: Der Projektordner dieser App befindet sich nicht im Standardverzeichnis AndroidStudioProjects, das Android Studio für mich erstellt hat. Ich habe ein separates Verzeichnis erstellt. Erzählte es nur für den Fall, dass dies die Ursache für die Fehler sein könnte.

+1

Welche Version von Android läuft auf Ihrem Gerät? 'NumberFormat'-Klasse wurde in' api 24' hinzugefügt – pleft

+0

Es läuft Android 5.1.1 und API-Ebene ist 22. –

+0

Deshalb ist es nicht auf Ihrem Gerät ausgeführt. – pleft

Antwort

1

Für Ihren ersten Fehler: In android, das "-" ist für einen Paketnamen nicht akzeptabel: justjava-2 die Quelle Ihres Fehlers ist, wie es scheint, dass aus diesem Grund werden einige Dateien nicht auf dem Gerät hinzugefügt

Sie sollten Sie mit einem Namen entsprechen Projekt neu wie justjava_2

Paketnamen akzeptieren nur "a..z", "_", "0..9" und müssen mit einem Buchstaben beginnen

+0

Gut ausgerichtet! Ich habe es nicht bemerkt –

+0

Ich hatte es nicht benannt ... es wurde von Android Studio selbst benannt –

0

Scheint, dass Sie android verweisen: onClick durch XML zu einer Methode, die nicht in Ihrer Aktivität vorhanden ist. Wenn Sie eine Aktion auf diese Weise referenzieren möchten, benötigen Sie eine Methode, die void zurückgibt und View als Parameter für Ihre Aktivität anzeigt.

public void myOrderAction(View view){ 
    //Do the "Order" stuff here 
} 

Und in Ihrem XML-

android:onClick="myOrderAction" 
+1

Ja, dies sollte das onClick-Problem lösen, auch prüfen meine Antwort unten für die anderen Fehler über die Konformität –

+0

Ich habe bereits eine Methode dafür. Es lief perfekt auf dem Emulator. –

+0

Wie bist du zu dieser Schlussfolgerung gekommen? Der Grund, dass "onClick" fehlschlägt, ist: 'verursacht durch: java.lang.NoClassDefFoundError: Fehlgeschlagene Auflösung von: Landroid/icu/text/NumberFormat;' – pleft

Verwandte Themen