2017-02-13 11 views
1

私はAndroidのランタイムを取得していますアプリをフェッチ接触の次のコードを使用していないよ:致命的な例外:メインエラー行で、以下の何17取得Androidのランタイム:致命的な例外

package com.example.alpesh_pc.contactlist; 

import android.app.Activity; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.provider.ContactsContract; 
import android.widget.Toast; 

public class MainActivity extends Activity 
{ 
    public Cursor cursor; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     cursor=this.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 
     if(cursor.getCount()>0) 
     { 
      Toast.makeText(this, "Seccess", Toast.LENGTH_LONG).show(); 
     } 

    } 
} 

は私のlogcatある

E/AndroidRuntime:致命的な例外:メイン プロセス:com.example.alpesh_pc.contactlist、PID:3833 java.lang.RuntimeException:活性ComponentInfo {com.example.alpesh_pc.contactlist/COMを開始できません。例プロバイダのcom.android.providers.contacts.ContactsProvider2をProcessRecord {6970ad0 3833:com.example.alpesh_pc.contactlist/u0a67}から開きます(pid = 3833、le.alpesh_pc.contactlist.MainActivity):java.lang.SecurityException: UID = 10067)は、android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) でandroid.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) でandroid.permission.READ_CONTACTS又はandroid.permission.WRITE_CONTACTS を必要としますandroid.app.ActivityThread.-wrap12(ActivityThread.java) android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1460) (android.os.Handler.dispatchMessage(Handler.java:102) 、android)にあります。 .os.Looper.loop(Looper.java:154) android.app.Activi tyThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(ネイティブメソッド) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:865) at com .android.internal.os.ZygoteInit.main(ZygoteInit.java:755) によって引き起こされた:java.lang.SecurityException:アクセス許可拒否:プロバイダcom.android.providers.contacts.ContactsProvider2をProcessRecord {6970ad0 3833から開く:com.example .alpesh_pc.contactlist/u0a67}(PID = 3833、10067 = UID)android.os.Parcel.readExceptionでandroid.permission.READ_CONTACTS又はandroid.permission.WRITE_CONTACTS (Parcel.java:1683)android.osで を必要とします。 Parcel.readException(Parcel.java:1636) android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:4169)android.content.ContentResolver.acquireUnstableProviderでandroid.app.ContextImpl $ ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2267) でandroid.app.ActivityThread.acquireProvider(ActivityThread.java:5434) で(ContentResolver.java:1515) android.content.ContentResolver.query(ContentResolver.java:514) android.content.ContentResolver.query(ContentResolver.java:472) at com.example.alpesh_pc.contactlist.MainActivity.onCreate(MainActivity.java: 17) android.app.ActivityThread.performLaunchActivityでandroid.app.Instrumentation.callActivityOnCreateでandroid.app.Activity.performCreate(Activity.java:6662) (Instrumentation.java:1118) (AT android.app.ActivityThread $ H.handleMessageでandroid.app.ActivityThread.-wrap12(ActivityThread.java) でandroid.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) でActivityThread.java:2599) (ActivityThread .java:1460) とandroid.os.Handler.dispatchMessage(Handler.java:102) とandroid.os.Looper.loop(Looper.java:154) とandroid.app.ActivityThread.main(ActivityThread.java :6077) at java.lang.reflect.Method.invoke(ネイティブメソッド) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os。 ZygoteInit.main(ZygoteInit.java:755) アプリケーションtermiネーティブ。

+0

あなたのlogcatを共有してください –

+0

もう一度質問を確認してください。私はlogcatで修正しました。ありがとうございました。 @TahmidRahman –

+0

私のansを確認してください –

答えて

0

チェック権限だけでなく、APIレベル23以上等のプットランタイム許可で許可 <uses-permission android:name="android.permission.READ_CONTACTS" />を追加します:マニフェストファイルの

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

および実行時アクセス許可チェック用:

permission_tutorial

+0

私はすでにこの権限をマニフェストファイルに追加しています。 –

+0

permission_tutorialのリンクを確認してコードに入れてください –

1

たManifest.xmlでAndroidのマニフェストXML

+0

私はすでにマニフェストファイルにこの権限を追加しています。 –

0

あなたはMarshmallow OS(Android Version 6)または実行時のアクセス許可チェックが必要なデバイスを使用していると思います。

これを試しましたか?

​​

し、任意の混乱が残っていれば、あなたが見hereを持っているかもしれませんそれでも

@Override 
public void onRequestPermissionsResult(int requestCode, 
     String permissions[], int[] grantResults) { 
     switch (requestCode) { 
      case MY_PERMISSIONS_REQUEST_READ_CONTACTS: { 
      // If request is cancelled, the result arrays are empty. 
      if (grantResults.length > 0 
      && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 

      // permission was granted, yay! Do the 
      // contacts-related task you need to do. 

     } else { 

      // permission denied, boo! Disable the 
      // functionality that depends on this permission. 
     } 
     return; 
    } 

    // other 'case' lines to check for other 
    // permissions this app might request 
    } 
} 

許可要求応答を処理します。

+0

MY_PERMISSIONS_REQUEST_READ_CONTACTSはシンボル –

+0

を解決できません。それは 'requestCode'です。あなたのアクティビティで 'public static final int MY_PERMISSIONS_REQUEST_READ_CONTACTS = 0;'のように初期化できます。ここでは0は必須ではありません、あなたは任意の 'int' –

関連する問題