当前位置: 首页 > 知识库问答 >
问题:

获取Android运行时:致命异常

桂丰
2023-03-14

我正在使用以下联系人获取应用程序的代码,我正在获得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:无法启动activity组件信息{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)打开提供程序ethod.invoke(本机方法)在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.example.alpesh_pc.contactlist.mainactivity.oncreate(mainactivity.java:17)在android.app.activity.performCreate(activity.java:6662)在android.app.instrumentation.callactivityoncreate(activity.java:1118)在android.app.activitythread.performLaunchActivity(activitythread.java:2599)在android.app.activitythread.handleLaunchActivity(activitythread.java:2707) 在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.activityThread.main(activityThread.java:6077) 在java.lang.Reflect.Method.Invoke(原生方法) 在com.android.internal.os.zygoteInit$methodandargscaller.run(zygoteInit.java:865) 在com.android.internal.os.zygoteinit.main(zygoteinit.java:755) 应用程序已终止。

共有2个答案

甘英光
2023-03-14

在Android manifest xml中添加权限

逑景铄
2023-03-14

检查manifest.xml中的权限,并将运行时权限设置为api级别23或更高,如下所示:

对于清单文件:

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

对于运行时权限检查:

Permission_Tutorial

 类似资料:
  • 我正在制作一个运行欢迎屏幕的应用程序,但当我尝试运行我的应用程序android版本,比如7.0甚至7.1时,它会在setcontentview(activity_main)上出错 但当我试着运行我的应用程序android 11版时,它会从任何问题开始 我的应用程序在ver上运行的原始序列。11 如果我打开启动屏幕活动,欢迎后启动屏幕出现错误 溅起水花。爪哇: }

  • 我有一个代码如下: 当我尝试运行代码时,我得到这样的消息: 我提到了这个链接,但不明白如何修改上面的代码,使其可行:例外:需要mockito,但没有调用,实际上与这个mock没有任何交互 有人能帮忙吗。 通过添加c.getResult(新的A(新的B()),新的F())解决了上述错误;在上面 我错过了什么?我一直在使用的课程:

  • 任何帮助都是非常感谢的。提前谢了。

  • 我是android的新手,不知道我做错了什么,这个类得到了经度和纬度并发送到另一个类,代码抛出了一个错误请告诉我该怎么做怎么做: public void onRequestPermissionsResult出错(int requestCode,String[]permissions,int[]grantResults

  • 我在所有项目(平台共享)中将我的Xamarin. form包更新到最新(2.3.4.224),现在我似乎不应该再使用或枚举,因为它们已被弃用。 编译器因为这些行而抱怨: 上面写着: "Device.OS已过时。请改用Runtime平台" 到目前为止一切都很好,现在我想解决这个问题,我一直在尝试使用: 但它抛出了一个运行时异常。这是堆栈跟踪 04-08 14:57:34.812 I/MonoDroi