简体   繁体   中英

Android Provides error with permission in manifest even If I have already added one( Content Resolver issue?)

Hello Guys Please help me with this one.

While this is how my AndroidManifestXML looks.:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="android.jojonarte.com.mycontactresolver" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name="android.jojonarte.com.mycontactresolver.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="23"/>
    <uses-permission android:name="android.permission.READ_CONTACTS" />

</manifest>

This is my error code

09-12 22:48:55.392 2904-2904/android.jojonarte.com.mycontactresolver E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: android.jojonarte.com.mycontactresolver, PID: 2904
java.lang.RuntimeException: Unable to start activity ComponentInfo{android.jojonarte.com.mycontactresolver/android.jojonarte.com.mycontactresolver.MainActivity}: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord{aa19c00 2904:android.jojonarte.com.mycontactresolver/u0a58} (pid=2904, uid=10058) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord{aa19c00 2904:android.jojonarte.com.mycontactresolver/u0a58} (pid=2904, uid=10058) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
at android.os.Parcel.readException(Parcel.java:1599)
at android.os.Parcel.readException(Parcel.java:1552)
at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3550)
at android.app.ActivityThread.acquireProvider(ActivityThread.java:4778)
at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2018)
at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1468)
at android.content.ContentResolver.query(ContentResolver.java:475)
at android.content.ContentResolver.query(ContentResolver.java:434)
at android.jojonarte.com.mycontactresolver.ContactsProvider.getContacts(ContactsProvider.java:40)
at android.jojonarte.com.mycontactresolver.MainActivity.onCreate(MainActivity.java:22)
at android.app.Activity.performCreate(Activity.java:6237)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

These are the resources that I have, I could also provide my other classes too if needed be. I know it says I must included permission for reading contacts but it's already added, that's why I'm wondering how this occured.

Remove your package name from your activity's name;
Change this line:

android:name="android.jojonarte.com.mycontactresolver.MainActivity"

to this:

android:name=".MainActivity"

Or completely remove the package attribute from the beginning of your Manifest, but then you have to write it with every activity's name, like follows:

<activity
    android:name="android.jojonarte.com.mycontactresolver.MainActivity">
...
</activity>

<activity 
  android:name="android.jojonarte.com.mycontactresolver.AnotherActivity">
...
</activity>

And so on.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM