Anwendungsabsturz beim Drücken der Menütaste

9

Ich versuche, eine App für Android zu erstellen, und ich stieß auf das folgende Problem:

Die Anwendung stürzt bei einem bestimmten Telefon ab, wenn ich die Menütaste drücke. Lass mich dir zuerst einige Details geben.

  • Der Fehler tritt nur bei LG Optimus L3 II e430 mit Android 4.1.2 auf (bisher auf vier anderen Telefonen getestet)
  • Die Anwendung startet mit einem Begrüßungsbildschirm und keiner Aktionsleiste. An dieser Stelle macht Menü-Taste nichts.
  • Mit einer einfachen Berührung kommen wir über den Begrüßungsbildschirm hinaus und wir gehen zur Hauptaktivität, die ActionBar-Aktivitäten implementiert und eine Navigationsleiste hat.
  • Ab diesem Punkt und danach stürzt die App jedes Mal ab, wenn ich versuche, auf die Menüschaltfläche zu klicken.

Hier ist das Layout des Menüs und der Funktion onCreateOptionsMenu:

res / menu / main.xml

%Vor%

Teil von MainActivity.java

%Vor%

Bitte beachten Sie, dass dieser Code von Android Studio generiert wird.

Bisher habe ich es versucht:

  • Versucht, die Datei mit dem Problem aus den SDK-Quellen (API-Ebene 16 und 21) zu betrachten, aber sie waren nicht relevant für die Stack-Trace (Zeile in der Stack-Trace zeigt an einem Ort, der keinen Sinn ergab) ).
  • Ich habe versucht, XPosed Fix für Google PlayStore mit dem Fehler in der Menüschaltfläche zu installieren. Nichts hier auch.
  • Ich habe einen ähnlichen Fehlerbericht für das Bugtracking-System von Firefox gefunden, also habe ich versucht, Firefox zu installieren und zu sehen, ob es auf meinem Telefon abstürzt, wenn ich die Menütaste drücke; Firefox stürzte nicht ab. ( Link zum Firefox-Fehler )

Hier ist der Stack-Trace von LogCat:

%Vor%     
TheCrafter 24.10.2014, 09:21
quelle

3 Antworten

0

Nachdem ich kürzlich auf dasselbe Problem gestoßen bin, habe ich die Wurzel des Problems gefunden. Das Problem sind Kompatibilitätsprobleme zwischen älteren und neueren Support-Bibliotheken. Es scheint, dass ich abgeschriebene Sachen um meinen Code zusammen mit neueren Sachen verwendete.

Es tut mir leid, dass ich irgendwie abstrakt bin, aber diese Frage ist 4 Monate alt und ich kann mich nicht erinnern, was genau die falschen Codezeilen waren. Wenn der Speicher richtig funktioniert, lag das Problem bei automatisch generierten Methoden aus Android Studio für die Aktivitäten der Anwendungsschublade. Ich habe die Projektvorlage "Schublade-Anwendung" von Android Studio verwendet und mich dafür entschieden, auch sehr alte Android-APIs zu unterstützen, sodass Android Studio die veraltete Android-Unterstützungsbibliothek auswählte.

Der Punkt ist, dass ich das Problem gelöst habe, als ich den Code nur für nicht abgeschriebene Techniken umstrukturierte.

Wenn Sie gegen ein ähnliches Problem ankämpfen, empfehle ich dringend, alles zu entfernen, was Android Studio (ich nehme an, dass Sie Android Studio oder Eclipse verwenden) als abgeschrieben markiert.

    
TheCrafter 04.03.2015, 13:23
quelle
2

Update: Mit Appcompat-v7 Version 22.0.0 scheint onKeyUp nicht für die Menütaste ausgelöst zu werden. Der ursprüngliche Fehler scheint behoben zu sein, daher werde ich wahrscheinlich die Problemumgehung des Untermenüs entfernen. Leider habe ich das Update auf einem betroffenen LG 4.1 Gerät nicht verifiziert.

Ich habe am Ende eine Workaround für diese, die Benutzer berichten, hat das Problem für sie behoben.

Implementieren Sie Untermenüs, anstatt sich auf das Überlaufmenü zu verlassen. Der Nachteil dabei ist, dass jetzt jedes Gerät den Überlaufknopf in der Aktionsleiste sehen kann, selbst wenn sie eine Menü-Taste haben.

Die folgende Technik stammt von Ссылка

  1. Wandelt alle Überlaufoptionen in Untermenüs um.

  2. Überschreibe onKeyUp in deinen Aktivitäten, lass es Menu.performIdentifierAction(R.id.menu_overflow, 0); aufrufen und rufe super.onKeyUp nicht für keyCode == KEYCODE_MENU auf.

TalkLittle 07.11.2014 15:57
quelle
0

Auch zum Abfangen von Menu-Buttons kann next:

verwendet werden %Vor%

Arbeitete für die neueste Version von AppCompat und SDK - 22.0

    
kaftanati 28.03.2015 21:18
quelle

Tags und Links