我在Android中运行应用程序时遇到以下错误。我没有任何后台任务。
致命异常:AsyncTask#1
过程:com.inclov.inclovapp,PID:32532
java.lang.RuntimeException:执行时发生错误 doInBackground()在android.os.AsyncTask $ 3.done(AsyncTask.java:304)at at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) at java.util.concurrent.FutureTask.setException(FutureTask.java:222) 在java.util.concurrent.FutureTask.run(FutureTask.java:242)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:587) 在java.lang.Thread.run(Thread.java:818)引起:java.lang.SecurityException:权限拒绝:打开 提供者com.android.providers.contacts.ContactsProvider2来自 ProcessRecord {2363bbc5 32532:com.inclov.inclovapp / u0a161}(pid = 32532, uid = 10161)需要android.permission.READ_CONTACTS或 android.permission.WRITE_CONTACTS在 android.os.Parcel.readException(Parcel.java:1546)at android.os.Parcel.readException(Parcel.java:1499)at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3503) 在 android.app.ActivityThread.acquireProvider(ActivityThread.java:5062) 在 android.app.ContextImpl $ ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2737) 在 android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1446) 在android.content.ContentResolver.query(ContentResolver.java:466)at android.content.CursorLoader.loadInBackground(CursorLoader.java:64)at android.content.CursorLoader.loadInBackground(CursorLoader.java:42)at android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:312) 在 android.content.AsyncTaskLoader $ LoadTask.doInBackground(AsyncTaskLoader.java:69) 在 android.content.AsyncTaskLoader $ LoadTask.doInBackground(AsyncTaskLoader.java:57) 在android.os.AsyncTask $ 2.call(AsyncTask.java:292)at java.util.concurrent.FutureTask.run(FutureTask.java:237)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:587) 在java.lang.Thread.run(Thread.java:818)
答案 0 :(得分:0)
将这些添加到您的清单:
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
请阅读此内容以获取更多信息 - https://developer.android.com/training/contacts-provider/retrieve-names.html#Permissions
答案 1 :(得分:0)
如错误中所述,您需要以下权限:
android.permission.READ_CONTACTS
或
android.permission.WRITE_CONTACTS
对于棒棒糖和之前,你需要将它添加到你的清单:
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
如果您要定位Marshmallow,则需要使用此操作在活动内添加请求权限逻辑。请按照此官方Link了解如何操作。