1

I have two apps that are using content provider. App-1 is a "provider App" that has a content provider to access into database. That app compiled on API LEVEL 30. And App-2 is a "consummer app" that want to access database via content provider. There is no problem when I build app-2 using android API LEVEL 29. But, when I try to use API LEVEL 30 on App-2, I got SecurityException: Failed to find provider com.package.name.provider for user 0; expected to find a valid ContentProvider for this authority; on API LEVEL 30 Exception.

here the logcat:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.satelliteapp, PID: 10599
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.satelliteapp/com.example.satelliteapp.FavActivity}: java.lang.SecurityException: Failed to find provider com.package.name.provider for user 0; expected to find a valid ContentProvider for this authority
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3449)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.SecurityException: Failed to find provider com.package.name.provider for user 0; expected to find a valid ContentProvider for this authority
        at android.os.Parcel.createExceptionOrNull(Parcel.java:2373)
        at android.os.Parcel.createException(Parcel.java:2357)
        at android.os.Parcel.readException(Parcel.java:2340)
        at android.os.Parcel.readException(Parcel.java:2282)
        at android.content.IContentService$Stub$Proxy.registerContentObserver(IContentService.java:1229)
        at android.content.ContentResolver.registerContentObserver(ContentResolver.java:2627)
        at android.content.ContentResolver.registerContentObserver(ContentResolver.java:2615)
        at com.example.satelliteapp.FavActivity.onCreate(FavActivity.kt:55)
        at android.app.Activity.performCreate(Activity.java:8000)
        at android.app.Activity.performCreate(Activity.java:7984)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3422)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) 
        at android.os.Handler.dispatchMessage(Handler.java:106) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 
     Caused by: android.os.RemoteException: Remote stack trace:
        at com.android.server.content.ContentService.registerContentObserver(ContentService.java:355)
        at android.content.IContentService$Stub.onTransact(IContentService.java:482)
        at android.os.Binder.execTransactInternal(Binder.java:1154)
        at android.os.Binder.execTransact(Binder.java:1123)

this is the App-1 manifest:

<permission android:name="com.package.name.provider.READ_DATABASE" android:protectionLevel="normal" />
    <permission android:name="com.package.name.provider.WRITE_DATABASE" android:protectionLevel="normal" />
        <provider android:name=".provider.UserProvider"
            android:authorities="com.package.name.provider"
            android:exported="true"
            android:enabled="true"
            android:grantUriPermissions="true"
            android:readPermission="com.package.name.provider.READ_DATABASE"
            android:writePermission="com.package.name.provider.WRITE_DATABASE" />

and here is the app-2 manifest:

    <uses-permission android:name="com.package.name.provider.READ_DATABASE"/>
    <uses-permission android:name="com.package.name.provider.WRITE_DATABASE"/>

how to solve this issue?

0 Answers0