使用 Facebook ShareLink 标记 <provider> 属性权限在 AndroidManifest.xml 中具有无效字符“{”

Tag <provider> attribute authorities has invalid character '{' in AndroidManifest.xml using Facebook ShareLink

虽然我删除了“{}”大括号,但它仍然出现。

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

将您发布的代码段中的 {facebook_app_id} 替换为您的 Facebook 应用程序 ID。

我也一样:IDE 重新插入了大括号。我剪切了部分,重新​​启动 Android Studio 并粘贴了它。然后就成功了。

格式应为:android:authorities="com.facebook.app.FacebookContentProvider0123456789",其中 012345678 是您的 Facebook app ID。在 不使用 { 字符的情况下使用它。所以你的 provider 标签应该是:

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

但是,如果您不小心已经使用了 { 字符,那么您很可能会遇到 Android Studio 错误,因为它是 reported here。问题是您正在尝试编辑 错误的清单 。 Android Studio build message 弹出的清单不是 应用程序的清单。

因此,只需打开应用程序的清单,即可毫无问题地对其进行编辑。

您在错误的位置添加了 <provider../> 标签

  1. 删除 <provider../> 标签
  2. 关闭Android清单
  3. 尝试"Sync Project with Grandle Files"

  4. 再次构建项目

  5. 打开Android清单
  6. 在应用程序标签关闭之前添加标签,不带括号“{}”

...

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

希望对您有所帮助