FATAL EXCEPTION: main Process: de.ubuntix.android.birthdayreminder, PID: 13448 java.lang.RuntimeException: Unable to resume activity {de.ubuntix.android.birthdayreminder/de.ubuntix.android.birthdayreminder.BirthdayReminder}: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=13448, uid=10088 requires android.permission.READ_CONTACTS, or grantUriPermission() at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3784) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3816) at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=13448, uid=10088 requires android.permission.READ_CONTACTS, or grantUriPermission() at android.os.Parcel.createException(Parcel.java:1950) at android.os.Parcel.readException(Parcel.java:1918) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135) at android.content.ContentProviderProxy.query(ContentProviderNative.java:418) at android.content.ContentResolver.query(ContentResolver.java:802) at android.content.ContentResolver.query(ContentResolver.java:752) at android.content.ContentResolver.query(ContentResolver.java:710) at de.ubuntix.android.birthdayreminder.database.dao.ContactDataAccess.getDBContactsById(ContactDataAccess.java:79) at de.ubuntix.android.birthdayreminder.database.dao.ContactDataAccess.getAll(ContactDataAccess.java:29) at de.ubuntix.android.birthdayreminder.database.Database.getAllContacts(Database.java:24) at de.ubuntix.android.birthdayreminder.BirthdayReminder.updateView(BirthdayReminder.java:134) at de.ubuntix.android.birthdayreminder.BirthdayReminder.onResume(BirthdayReminder.java:111) at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1412) at android.app.Activity.performResume(Activity.java:7292) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3776) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3816) at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
I have removed the permission of write in the manifest file and adjusted the code accordingly. This solves this problem. But this removes the permission to change the birthdays
as already written in signal. The app crashed
FATAL EXCEPTION: main Process: de.ubuntix.android.birthdayreminder, PID: 13448 java.lang.RuntimeException: Unable to resume activity {de.ubuntix.android.birthdayreminder/de.ubuntix.android.birthdayreminder.BirthdayReminder}: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=13448, uid=10088 requires android.permission.READ_CONTACTS, or grantUriPermission() at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3784) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3816) at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=13448, uid=10088 requires android.permission.READ_CONTACTS, or grantUriPermission() at android.os.Parcel.createException(Parcel.java:1950) at android.os.Parcel.readException(Parcel.java:1918) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183) at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135) at android.content.ContentProviderProxy.query(ContentProviderNative.java:418) at android.content.ContentResolver.query(ContentResolver.java:802) at android.content.ContentResolver.query(ContentResolver.java:752) at android.content.ContentResolver.query(ContentResolver.java:710) at de.ubuntix.android.birthdayreminder.database.dao.ContactDataAccess.getDBContactsById(ContactDataAccess.java:79) at de.ubuntix.android.birthdayreminder.database.dao.ContactDataAccess.getAll(ContactDataAccess.java:29) at de.ubuntix.android.birthdayreminder.database.Database.getAllContacts(Database.java:24) at de.ubuntix.android.birthdayreminder.BirthdayReminder.updateView(BirthdayReminder.java:134) at de.ubuntix.android.birthdayreminder.BirthdayReminder.onResume(BirthdayReminder.java:111) at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1412) at android.app.Activity.performResume(Activity.java:7292) at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3776) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3816) at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:51) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:145) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)