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" />
I had the same: the IDE re-inserted the curly braces. I cut the part, restarted Android Studio and pasted it. Then it worked.
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.
Replace {facebook_app_id} in the snippet you posted with your Facebook app id.
You added the <provider../>
tag in the wrong place
- Delete the
<provider../>
tag - Close Android Manifest
Try "Sync Project with Grandle Files"
Build Project again
- Open Android Manifest
- 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
来源:https://stackoverflow.com/questions/29643274/tag-provider-attribute-authorities-has-invalid-character-in-androidmanifes