2016-08-06 128 views
-3

我得到這個錯誤,當我在設備上運行它時,應用程序崩潰。Android「不幸的是,MyApp已經停止」

我正在使用Android Studio 1.3.2。

這是我的堆棧跟蹤:

08-06 13:26:35.980 8874-8889/com.test.myapp E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #1 
    Process: com.test.myapp, PID: 8874 
    java.lang.RuntimeException: An error occurred while executing doInBackground() 
      at android.os.AsyncTask$3.done(AsyncTask.java:309) 
      at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 
      at java.util.concurrent.FutureTask.setException(FutureTask.java:223) 
      at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
      at java.lang.Thread.run(Thread.java:818) 
    Caused by: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.SemcContactsProvider2 from ProcessRecord{c94f2c4 8874:com.test.myapp/u0a60} (pid=8874, uid=10060) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS 
      at android.os.Parcel.readException(Parcel.java:1627) 
      at android.os.Parcel.readException(Parcel.java:1579) 
      at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3565) 
      at android.app.ActivityThread.acquireProvider(ActivityThread.java:4878) 
      at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2004) 
      at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1477) 
      at android.content.ContentResolver.query(ContentResolver.java:481) 
      at android.content.CursorLoader.loadInBackground(CursorLoader.java:64) 
      at android.content.CursorLoader.loadInBackground(CursorLoader.java:42) 
      at android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:312) 
      at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:69) 
      at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:57) 
      at android.os.AsyncTask$2.call(AsyncTask.java:295) 
      at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
      at java.lang.Thread.run(Thread.java:818) 
+2

您尚未獲得Android Manifest的聯繫人權限 – Abhishek

+1

在將來的問題中,您可能會發現包含一些代碼以顯示您正在嘗試執行的操作而不僅僅是堆棧跟蹤很有用。只有堆棧跟蹤可能不足以供我們調試。 還描述你已經嘗試過,所以我們可以更有效地幫助。 – jbehrens94

+1

'由java.lang.SecurityException:Permission Denial導致:從ProcessRecord {c94f2c4 8874:com.test.myapp/u0a60}(pid = 8874,uid = 10060)打開provider com.android.providers.contacts.SemcContactsProvider2需要android .permission.READ_CONTACTS或android.permission.WRITE_CONTACTS'您需要了解如何解釋logcat。 –

回答

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

此外,如果你想要寫的聯繫人寫:

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

把這些行到您的清單文件(直接在該「清單「標籤)

0

在清單中添加權限

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

的Android M +需要運行許可implement like this code

0

的堆棧跟蹤說,你需要問權限。 requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS

把這個在您的manifes

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

請注意,如果您正在爲Android的M +你也應該要求在運行時的權限。

相關問題