向Play Market发布更新时遇到Provider Authorities错误
检查签名与包名匹配度
Play Store通过签名密钥+包名识别应用身份,若上传时使用了与历史版本不同的签名,哪怕包名一致,系统也会判定为其他开发者的应用,触发权限冲突。务必确认当前上传用的签名文件和之前版本完全一致,回滚代码后别忘换回原签名配置。修改内容提供器的Authority
针对被占用的com.###.fileprovider、com.###.firebaseinitprovider、com.###.mobileadsinitprovider三个内容提供器,在AndroidManifest.xml中修改它们的android:authorities属性,比如添加唯一后缀改成com.###.app.fileprovider、com.###.app.firebaseinitprovider。
若是第三方库自动生成的provider(如Firebase、Google Ads),可以在gradle配置中自定义authority:android { defaultConfig { manifestPlaceholders = [ fileProviderAuthority: "com.###.app.fileprovider", firebaseInitProviderAuthority: "com.###.app.firebaseinitprovider", mobileAdsInitProviderAuthority: "com.###.app.mobileadsinitprovider" ] } }然后在Manifest中引用这些占位符,以FileProvider为例:
<provider android:name="androidx.core.content.FileProvider" android:authorities="${fileProviderAuthority}" ... />核对Play Console应用项目
登录Play Console,确认当前上传的包名对应正确的应用项目,有没有误创建过同名的重复项目。如果存在重复项目,要么删除无关项目,要么确保上传到正确的项目下。清理构建缓存后重新打包
回滚代码后构建缓存可能残留旧配置,导致打包出的App Bundle仍带冲突的provider信息。执行以下命令清理并重新构建:./gradlew clean ./gradlew bundleRelease也可以在Android Studio中通过
File -> Invalidate Caches... -> Invalidate and Restart清理缓存后再重新打包。
内容的提问来源于stack exchange,提问作者Dongfu He

