Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 异常-将异常写入包裹_Java_Android_Database_Sqlite_Sqliteopenhelper - Fatal编程技术网

Java 异常-将异常写入包裹

Java 异常-将异常写入包裹,java,android,database,sqlite,sqliteopenhelper,Java,Android,Database,Sqlite,Sqliteopenhelper,这是一个将简单文本数据插入sqlite数据库的小任务。我已经为此使用了SQLiteOpenHelper类,并使用了给定的代码。 我在这里发现了一些类似的问题,但不完全相同。请帮帮我。这是个例外- 11-14 21:59:17.786 5746-5763/? E/DatabaseUtils: Writing exception to parcel java.lang.SecurityException: Nei

这是一个将简单文本数据插入sqlite数据库的小任务。我已经为此使用了SQLiteOpenHelper类,并使用了给定的代码。 我在这里发现了一些类似的问题,但不完全相同。请帮帮我。这是个例外-

11-14 21:59:17.786 5746-5763/? E/DatabaseUtils: Writing exception to parcel
                                            java.lang.SecurityException: Neither user 10169 nor current process has android.permission.READ_PROFILE.
                                                at android.app.ContextImpl.enforce(ContextImpl.java:1921)
                                                at android.app.ContextImpl.enforceCallingOrSelfPermission(ContextImpl.java:1950)
                                                at android.content.ContextWrapper.enforceCallingOrSelfPermission(ContextWrapper.java:600)
                                                at com.android.providers.contacts.ProfileProvider.enforceReadPermission(ProfileProvider.java:54)
                                                at com.android.providers.contacts.ProfileProvider.query(ProfileProvider.java:84)
                                                at com.android.providers.contacts.ContactsProvider2.query(ContactsProvider2.java:5066)
                                                at android.content.ContentProvider$Transport.query(ContentProvider.java:214)
                                                at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
                                                at android.os.Binder.execTransact(Binder.java:446)
我在AndroidManifest.XML文件中使用了以下权限:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.Manifest.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

}您需要将此行添加到您的清单中:

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


您需要将此行添加到您的清单中:

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

您需要询问,添加清单对于较新版本来说是不够的

if (ContextCompat.checkSelfPermission(thisActivity,
            Manifest.permission.READ_CONTACTS)
    != PackageManager.PERMISSION_GRANTED) {

// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
        Manifest.permission.READ_CONTACTS)) {

    // Show an explanation to the user *asynchronously* -- don't block
    // this thread waiting for the user's response! After the user
    // sees the explanation, try again to request the permission.

} else {

    // No explanation needed, we can request the permission.

    ActivityCompat.requestPermissions(thisActivity,
            new String[]{Manifest.permission.READ_CONTACTS},
            MY_PERMISSIONS_REQUEST_READ_CONTACTS);

    // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
    // app-defined int constant. The callback method gets the
    // result of the request.
}
}
您需要询问,添加清单对于较新版本来说是不够的

if (ContextCompat.checkSelfPermission(thisActivity,
            Manifest.permission.READ_CONTACTS)
    != PackageManager.PERMISSION_GRANTED) {

// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
        Manifest.permission.READ_CONTACTS)) {

    // Show an explanation to the user *asynchronously* -- don't block
    // this thread waiting for the user's response! After the user
    // sees the explanation, try again to request the permission.

} else {

    // No explanation needed, we can request the permission.

    ActivityCompat.requestPermissions(thisActivity,
            new String[]{Manifest.permission.READ_CONTACTS},
            MY_PERMISSIONS_REQUEST_READ_CONTACTS);

    // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
    // app-defined int constant. The callback method gets the
    // result of the request.
}
}

通过将此权限添加到清单,可以解决我的问题:

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

通过将此权限添加到清单,可以解决我的问题:

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


你的许可证丢了谢谢@Zoe。你能告诉我哪一个吗?我已经试过很多关于你的清单的帖子了,请hi@EmreAktürk,我编辑了这个问题并添加了我在清单文件中使用的权限。您现在可以发现问题了吗?您还需要在运行时询问READ_CONTACTs权限您缺少权限谢谢@Zoe。你能告诉我哪一个吗?我已经试过很多关于你的清单的帖子了,请hi@EmreAktürk,我编辑了这个问题并添加了我在清单文件中使用的权限。您现在可以发现问题了吗?您还需要在运行时询问READ_CONTACTs权限。如果我错了,请纠正我。但是没有这样的许可证你错了,它是在API级别23被删除的。根据其设置,您可能仍然需要use@MaiconHellmann这意味着它不存在。删除=在较新的API中不可用。如果我错了,请更正。但是没有这样的许可证你错了,它是在API级别23被删除的。根据其设置,您可能仍然需要use@MaiconHellmann这意味着它不存在。Removed=在较新的API中不可用。您好@EmreAktürk,抱歉,我不需要在我的应用程序中读取联系人。它只是一个向sqlite表添加数据的简单应用程序。我不知道为什么应用程序在运行时显示此异常。(它甚至没有使应用程序崩溃)嗨@Wijay Sharma,有一个名为DatabaseUtils的类试图读取联系人。您可以从错误日志的第一行了解它。这个类应该在您正在使用的依赖项中。如果它没有崩溃,可能是在try-catch块中。嗨@EmreAktürk,对不起,我不需要在我的应用程序中读取联系人。它只是一个向sqlite表添加数据的简单应用程序。我不知道为什么应用程序在运行时显示此异常。(它甚至没有使应用程序崩溃)嗨@Wijay Sharma,有一个名为DatabaseUtils的类试图读取联系人。您可以从错误日志的第一行了解它。这个类应该在您正在使用的依赖项中。如果它没有崩溃,很可能是在尝试捕捉块。