【问题标题】:Tag <provider> attribute authorities has invalid character '$'. AndroidManifest.xml /FacebookActivity标记 <provider> 属性权限具有无效字符“$”。 AndroidManifest.xml /FacebookActivity
【发布时间】:2017-02-04 12:48:41
【问题描述】:
我正在尝试从facebook sdk 中的Eclipse 创建一个库项目。
这个错误显示:
标记属性权限具有无效字符
'$'。 AndroidManifest.xml /FacebookActivity 第 44 行 Android AAPT
问题
这里是Manifest的部分:
<provider
android:name="com.facebook.internal.FacebookInitProvider"
android:authorities="${applicationId}.FacebookInitProvider"
android:exported="false" />
我该如何解决这个问题?
【问题讨论】:
标签:
android
eclipse
facebook
【解决方案1】:
您正在尝试使用清单占位符。 AFAIK,Eclipse 不支持。请注意,Google 不再支持 Eclipse 本身进行 Android 应用程序开发。
要么:
【解决方案2】:
因此,在构建您的应用时,Gradle 构建会将所有清单 文件合并为一个清单文件,该文件会打包到您的 APK 中。
但是默认情况下,Ant 构建不会合并清单。您可以选择手动复制应用程序依赖项中每个库清单中的活动和提供者标签,或者尝试通过将“manifestmerger.enabled=true”放入应用程序的“project.properties”来启用清单合并项目。
我使用第一种情况。然后我将第二个提供者标签添加到我的 AndroidManifest.xml:
<!--provider from facebook sdk manifest-->
<provider
android:authorities="com.example.hellofacebook.FacebookInitProvider"
android:name="com.facebook.internal.FacebookInitProvider"
android:exported="false" />
只需将您的应用程序包名称替换为 ${applicationId},并且不要忘记替换库清单中的 ${applicationId},以便能够将其编译为您的应用程序的依赖项。