2012-06-17 3 views
0

을 질식.LoaderCursor 데모 내가 API 데모에 LoaderCursor 예를 시도하고

06-16 01:07:30.270: E/AndroidRuntime(1331): FATAL EXCEPTION: AsyncTask #1 
06-16 01:07:30.270: E/AndroidRuntime(1331): java.lang.RuntimeException: An error occured while executing doInBackground() 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at android.os.AsyncTask$3.done(AsyncTask.java:278) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at java.util.concurrent.FutureTask.setException(FutureTask.java:124) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at java.lang.Thread.run(Thread.java:856) 
06-16 01:07:30.270: E/AndroidRuntime(1331): Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=1331, uid=10043 requires android.permission.READ_CONTACTS 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at android.os.Parcel.readException(Parcel.java:1327) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:181) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at android.content.ContentProviderProxy.query(ContentProviderNative.java:358) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at android.content.ContentResolver.query(ContentResolver.java:310) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at android.content.CursorLoader.loadInBackground(CursorLoader.java:56) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at android.content.CursorLoader.loadInBackground(CursorLoader.java:42) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:255) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:66) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:55) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at android.os.AsyncTask$2.call(AsyncTask.java:264) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
06-16 01:07:30.270: E/AndroidRuntime(1331):  ... 4 more 

이 내가 로더의 문제를 건너 처음으로 내가 잘못 여기에 무슨 일이 일어나고 있는지 아무 생각이 :하지만 LoaderCursor로드하는 동안 중지됩니다. 그래서 원인이 무엇일까?

답변

3

당신은 당신의 Android manifest file에 android.permission.READ_CONTACTS 권한을 놓치고있어. 시스템이 SecurityException을 던지고있는 것을 볼 수 있습니다.

그냥 XML 파일을 열고이 행을 추가

<uses-permission android:name="android.permission.READ_CONTACTS"/> 

그렇지 않으면 시스템을 사용하면 사용자 (샌드 박스 개념의 결과)를 보호하기 위해 연락처에 대한 액세스 권한을 부여합니다.

0

에 의해 발생 :이 java.lang.SecurityException : 권한 거부 : PID = 1331, UID = 10043에서 //com.android.contacts/contacts : com.android.providers.contacts.ContactsProvider2의 URI 내용을 읽기 당신은 매니페스트의 <uses-permission android:name="android.permission.READ_CONTACTS"/>을 포함하는 것을 잊었다 android.permission.READ_CONTACTS

이 필요합니다.

+0

@downvoter 답에 문제가있는 이유는 무엇입니까? 사람들이 왜 이런 식으로 행동하는지 알지 못합니다. ( –

+0

아마도 Tim이이 질문에 이미 대답했으며 답변이 사본처럼 보였을 것입니다. – Thkru

관련 문제