Tag attribute authorities has invalid c

2020-08-21 01:59发布

问题:

Though I delete the "{}" braces but it still occurs.

<provider
        android:name="com.facebook.FacebookContentProvider" android:authorities="com.facebook.app.FacebookContentProvider{facebook_app_id}"
        android:exported="true" />

回答1:

I had the same: the IDE re-inserted the curly braces. I cut the part, restarted Android Studio and pasted it. Then it worked.



回答2:

The format shoud be: android:authorities="com.facebook.app.FacebookContentProvider0123456789" , where 012345678 is your Facebook app ID. Use it without the { character. So your provider tag should be:

<provider
android:authorities="com.facebook.app.FacebookContentProvider0123456789"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>

However, if you accidently have already used the { character, then you will be most likely facing an Android Studio bug as it is reported here. The problem is that you are trying to edit the wrong manifest. The poped up manifest from Android Studio build message is not the application's manifest.

So simply open your application's manifest and you can edit it without problem.



回答3:

Replace {facebook_app_id} in the snippet you posted with your Facebook app id.



回答4:

You added the <provider../> tag in the wrong place

  1. Delete the <provider../> tag
  2. Close Android Manifest
  3. Try "Sync Project with Grandle Files"

  4. Build Project again

  5. Open Android Manifest
  6. Add the tag, without hte brackets '{}' right before application tag closes

...

<provider
    android:name="com.facebook.FacebookContentProvider"
    android:authorities="com.facebook.app.FacebookContentProvider7779..."
    android:exported="true" />
</application>

Hope it helps