请求READ_CONTACTS权限时出现错误Android M [英] Getting Error while requesting READ_CONTACTS permission Android M

查看:518
本文介绍了请求READ_CONTACTS权限时出现错误Android M的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正尝试获得READ_CONTACTS权限Android M并在通话时:

i am trying to get READ_CONTACTS permission Android M and on calling:

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

应用崩溃,但出现以下异常:

app crash with following exception:

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)

我还在清单文件中指定了<uses-permission android:name="android.permission.READ_CONTACTS" />.

I have also specified <uses-permission android:name="android.permission.READ_CONTACTS" /> in the Manifest file.

推荐答案

查看GrantPermissionsActivity的来源,在computePermissionGrantState()方法中唯一可以从Attempt to get length of null array获取NullPointerException的位置是这行:

Looking at the source for GrantPermissionsActivity, the only place in the computePermissionGrantState() method that you could get a NullPointerException from an Attempt to get length of null array is in this line:

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

由于您已经声明确实在清单中列出了READ_CONTACTS权限,因此可以得出结论,它只是在错误的位置,实际上不在此位置.确保<uses-permission>元素在<application>标记之外即可解决此问题.

Since you've stated that you have indeed listed the READ_CONTACTS permission in the manifest, it would follow that it's just in the wrong place, and is effectively not there. Ensuring that the <uses-permission> element is outside of the <application> tags solves the problem.

这篇关于请求READ_CONTACTS权限时出现错误Android M的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆