获取Android运行时:致命异常

alpeshsarvaiya编纂

我正在使用以下联系人提取应用程序的代码,我正在获取Android运行时:致命异常:第17行的主要错误。

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.example.alpesh_pc.contactlist.MainActivity }:java.lang.SecurityException:权限拒绝:从ProcessRecord {6970ad0 3833:com.example.alpesh_pc.contactlist / u0a67}(pid = 3833,uid = 10067)打开提供程序com.android.providers.contacts.ContactsProvider2需要android。在android.app.ActivityThread.-wrap12(ActivityThread。 .java)(位于android.os.Handler处的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1460)处)。android.os.Looper.loop(Looper.java:154)的dispatchMessage(Handler.java:102)android.app.ActivityThread.main(ActivityThread.java:6077)的java.lang.reflect.Method.invoke(Native) com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:865)处com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)的原因:java.lang.SecurityException :权限被拒绝:从ProcessRecord {6970ad0 3833:com.example.alpesh_pc.contactlist / u0a67}(pid = 3833,uid = 10067)打开提供程序com.android.providers.contacts.ContactsProvider2需要android.permission.READ_CONTACTS或android.permission android.os.Parcel.readException(Parcel.java:1683)上的.WRITE_CONTACTS android.os.Parcel.readException(Parcel.java:1636)上的android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:4169)上的.WRITE_CONTACTS app.ActivityThread。在android.content.ContentResolver.query(ContentResolver)处获得android.app.ContextImpl $ ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2267)在android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1515) .java:514),位于android.content.ContentResolver.query(ContentResolver.java:472),位于com.example.alpesh_pc.contactlist.MainActivity.onCreate(MainActivity.java:17),位于android.app.Activity.performCreate(Activity。于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)处的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)处的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)处的java:6662) android.app.ActivityThread $ H.handleMessage(ActivityThread。)上的android.app.ActivityThread.-wrap12(ActivityThread.java)。的android.os.Handler.dispatchMessage(Handler.java:102)的java:1460),android.app.ActivityThread.main(ActivityThread.java:6077)的android.os.Looper.loop(Looper.java:154)的com.android.internal.os.ZygoteInit.main(ZygoteInit.java)上的java.lang.reflect.Method.invoke(本机方法)com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:865) :755)申请终止。

希伦·瓦格拉(Hiren Vaghela)

检查Manifest.xml中的权限,并为api级别23或更高级别放运行时权限,例如:

对于清单文件:

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

对于运行时权限检查:

Permission_tutorial

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章