2016-01-08 6 views
5

Ich bereite meine App auf Android 6.0 Marshmallow vor.So finden Sie erforderliche Android Marshmallow-Laufzeitberechtigungen im Code?

Wenn die Ziel-API auf 23 gesetzt wird, stürzt die App beim Start sofort ab. In der logcat-Ausgabe gibt es keine nützlichen Informationen. (Es gibt ein "Angefordertes Fenster existiert nicht" IllegalStateException, aber immer noch nichts wirklich nützlich wie Klassenname oder Zeilennummer.)

Das ist in Ordnung (nicht wirklich), verengte ich es schließlich auf meine Startaktivität, wo ich Holen Sie den IMEI-Code des Benutzers (TelephonyManager.getDeviceId()). Es muss eine Laufzeitberechtigungsanforderung hinzugefügt werden. Ich verstehe das.

Allerdings hat die App etwa 60 Klassen über zahlreiche Aktivitäten, so dass es viel Code zu sortieren gibt. Wie kann ich den Code durchsuchen, um alle Fälle zu finden, in denen Laufzeitberechtigungen erforderlich sind?

Sicher muss Google eine einfache Möglichkeit für Entwickler gefunden haben, um herauszufinden, wo die Genehmigungsanfragen benötigt werden? Ich dachte, das Auskommentieren der Berechtigungen im Manifest würde einen Fehler bei der Kompilierung auslösen, bei dem die Berechtigungen verwendet werden, oder etwas Ähnliches, aber nein.

Meine aktuelle Methode ist durch die App gehen und wenn es abstürzt, wie oben mit meiner Startaktivität und sehr langsam eingrenzen, wo es ist. Dies ist äußerst ineffizient und zeitaufwendig. Ich bin versucht, es vorerst auf API 22 zu belassen, aber ich weiß früher oder später, dass dies getan werden muss.

+0

hallo können Sie die Build-Klasse XML-Datei senden Analysieren –

+1

Versuchen> Inspect-Code in Android Studio . – CommonsWare

+0

Danke, aber Inspect Code bietet hierfür keine Lösung. –

Antwort

2

Löschen Sie alle AndroidManifest.xml-Berechtigung.
Analysieren -> Run Inspektion nach Name ->Constant and Resource Type Mismatches in Android Studio.
Sie können die Berechtigung erkennen.
image

Aber dieser Nachweis ist nicht perfekt ...
Da diese einzige Methode erkennt, die diese enthält XMLs Dateien.
https://android.googlesource.com/platform/tools/adt/idea/+/master/android/annotations/android
https://android.googlesource.com/platform/tools/adt/idea/+/master/android/annotations/android/accounts/annotations.xml#118

0

Was für mich gearbeitet, ist dies: Analysieren -> Ausführen Inspektion Name -> Fehlende Berechtigungen

Verwandte Themen