2016-01-08 11 views
5

Sto preparando la mia app per scegliere Android 6.0 Marshmallow.Come trovare le autorizzazioni di runtime di Android Marshmallow richieste nel codice?

Quando si imposta l'obiettivo target su 23, l'app si arresta immediatamente al momento del lancio. Non ci sono informazioni utili nell'output del logcat. (Dà una "finestra richiesta non esiste" IllegalStateException, ma ancora, niente di utile come il nome della classe o il numero di riga.)

Questo va bene (non proprio), alla fine l'ho ristretto alla mia attività di lancio dove ho ottenere il codice IMEI del dispositivo dell'utente (TelephonyManager.getDeviceId()). È necessario aggiungere una richiesta di autorizzazione runtime. Lo capisco.

Tuttavia, l'app ha qualcosa come 60 lezioni in numerose attività, quindi c'è un sacco di codice da ordinare. Come posso cercare attraverso il codice per trovare tutti i casi in cui sono richieste le autorizzazioni di runtime?

Sicuramente Google deve aver pensato a un modo semplice per gli sviluppatori di rintracciare dove sono richieste le richieste di autorizzazione? Ho pensato che forse commentare le autorizzazioni nel manifest avrebbe innescato un errore in fase di compilazione in cui sono state utilizzate le autorizzazioni, o qualcosa del genere, ma no.

Il mio metodo attuale è quello di passare attraverso l'app e quando si blocca, fare come sopra con la mia attività di lancio e molto lentamente restringere dove si trova. Questo è estremamente inefficiente e richiede molto tempo. Sono tentato di lasciarlo all'API 22 per ora, ma so che prima o poi ciò dovrà essere fatto.

+0

hi si può inviare il file di build grado XML –

+1

Prova Analizza> Ispezionare Codice in Android Studio . – CommonsWare

+0

Grazie, ma Inspect Code non fornisce una soluzione per questo. –

risposta

2

Elimina tutte le autorizzazioni AndroidManifest.xml.
Analizza -> Esegui ispezione per nome ->Constant and Resource Type Mismatches in Android Studio.
È possibile rilevare il permesso.
image

Ma questo rilevamento non è perfetta ...
Perché questo rileva unico metodo che contiene questo XMLs file.
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

Quello che ha funzionato per me è questo: Analizza -> Esegui ispezione per nome -> Autorizzazioni mancanti

Problemi correlati