2016-05-12 12 views
1

Ich versuche READ_CONTACTS Erlaubnis Android M und zum Aufruf zu bekommen:Erste Fehler beim Anfordern READ_CONTACTS Erlaubnis Android M

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS}, 1); 

app Absturz mit folgenden Ausnahme:

05-12 17:08:24.578: E/AndroidRuntime(2846): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.packageinstaller/com.android.packageinstaller.permission.ui.GrantPermissionsActivity}: java.lang.NullPointerException: Attempt to get length of null array 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at android.app.ActivityThread.-wrap11(ActivityThread.java) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at android.os.Handler.dispatchMessage(Handler.java:102) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at android.os.Looper.loop(Looper.java:148) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at android.app.ActivityThread.main(ActivityThread.java:5417) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at java.lang.reflect.Method.invoke(Native Method) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
05-12 17:08:24.578: E/AndroidRuntime(2846): Caused by: java.lang.NullPointerException: Attempt to get length of null array 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at com.android.packageinstaller.permission.ui.GrantPermissionsActivity.computePermissionGrantState(GrantPermissionsActivity.java:293) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at com.android.packageinstaller.permission.ui.GrantPermissionsActivity.updateDefaultResults(GrantPermissionsActivity.java:343) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at com.android.packageinstaller.permission.ui.GrantPermissionsActivity.onCreate(GrantPermissionsActivity.java:100) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at android.app.Activity.performCreate(Activity.java:6251) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
05-12 17:08:24.578: E/AndroidRuntime(2846):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 

ich auch <uses-permission android:name="android.permission.READ_CONTACTS" /> angegeben habe, in die Manifest-Datei.

+0

Sind Sie sicher, dass der Code in Ihrer Frage das ist, was diese Stapelverfolgung generiert? Meine Interpretation dieses Stack-Trace würde vorschlagen, dass Sie versehentlich 'requestPermissions()' mit einem 'null'' String [] 'aufrufen. – CommonsWare

+2

Haben Sie die Berechtigung an der richtigen Stelle im Manifest aufgeführt? Das heißt, außerhalb der '' Tags. –

+1

@MikeM. Danke, Mann, ich habe es versehentlich in Application Tag, es funktioniert jetzt. –

Antwort

1

an der Quelle der Suche nach GrantPermissionsActivity, der einzige Ort in der computePermissionGrantState() Methode, die Sie eine NullPointerException von einem Attempt to get length of null array bekommen könnte, ist in dieser Zeile:

for (int i = 0; i < callingPackageInfo.requestedPermissions.length; i++) { 

Da Sie angegeben haben, dass Sie in der Tat aufgeführt haben READ_CONTACTS Erlaubnis im Manifest, es würde folgen, dass es nur am falschen Ort ist, und ist effektiv nicht da. Stellen Sie sicher, dass das <uses-permission> Element außerhalb der <application> Tags das Problem löst.

+0

danke Mann, ich habe es versehentlich in Application Tag, es funktioniert jetzt. –

+0

dachte die Ausnahme sollte dies sagen, es ist sehr schwierig, das Problem mit der aktuellen Stack-Trace zu verstehen. –

+1

Ja, es wäre schön, wenn sie das überprüfen würden und eine "Exception" mit einer entsprechenden Nachricht auslösen würden, aber c'est la vie. Prost! –

Verwandte Themen