Ionic Cordova使用facebook插件编译Android时出现重复资源错误
问题根因
该报错是fb_app_id、fb_app_name两个字符串资源同时在facebookconnect.xml(插件自动生成)和strings.xml(Cordova从根目录config.xml自动生成)中定义导致的资源冲突,你手动修改platforms目录下的strings.xml无效,是因为每次构建时Cordova都会自动从根目录配置重新生成该文件,手动修改会被覆盖。
解决方案
- 第一步:删除根目录config.xml中所有手动添加的Facebook相关配置,包括
<preference name="FacebookAppId" />、<preference name="FacebookAppName" />以及自定义的<string name="fb_app_id">、<string name="fb_app_name">配置项,相关配置由插件自动管理即可。 - 第二步:清理本地缓存与残留文件,执行以下命令:
ionic cordova platform remove android rm -rf platforms plugins node_modules package-lock.json npm install
- 第三步:重新添加Android平台并安装facebook插件,安装插件时直接传入配置参数:
ionic cordova platform add android@9.1.0 cordova plugin add cordova-plugin-facebook-connect --variable APP_ID="替换为你的Facebook应用ID" --variable APP_NAME="替换为你的Facebook应用名称"
- 可选兜底方案:如果上述操作后仍存在冲突,可在Android构建配置中添加资源排除规则,打开
platforms/android/app/build.gradle,在android节点下添加如下配置,指定排除插件生成的facebookconnect.xml即可:
android { // 保留原有其他配置不变 sourceSets { main { res.exclude 'src/main/res/values/facebookconnect.xml' } } }
内容的提问来源于stack exchange,提问作者Moblize IT
相关产品推荐
相关产品推荐

