将APK上传到Android Developer Console时,一切正常,但Android 5.0及更高版本上有一些用户无法安装或升级APK.这些用户会看到Google Play商店错误505.
有几种不同的资源告诉您505错误是一种权限冲突.从Android Lollipop开始,您将无法再使用相同名称的重复自定义权限https://developer.android.com/about/versions/android-5.0-changes.html#custom_permissions.如果您检查stackoverflow是否存在此错误,您会发现有多个人提供此解决方案的报告.虽然这有时可能是导致此错误的原因,但还有其他几个原因导致此错误和其他冲突发生.
如果两个完全不同的应用程序定义相同的权限,例如,如果您有一个用户和一个经理应用程序,并且它们都有以下内容:
您有相同的应用程序,但由不同的密钥签名.例如,如果您有发布版本和调试版本,则会遇到冲突,因为系统将此视为请求相同权限的两个不同应用程序.
但是可能会发生完全不同的情况,这种情况不太明显.冲突的权限也可能发生505错误.如果两个不同的应用程序声明相同的提供程序,例如
这也可能带来冲突.
最后,也是最难发现的冲突是Google Play Services 8.1及以上版本可能发生的冲突.如果您没有在build.gradle文件中定义应用程序ID,如下所示:
defaultConfig { applicationId "com.example.my.app" }
它可能会自动生成可能与其他应用程序冲突的提供程序.要检查这一点,请进入您的构建>中间人>清单>完整>发布> AndroidManifest.xml并查找
这里的权限名称将与其他应用程序冲突.如果将applicationId添加到默认配置,则会将此权限更改为
这非常微妙,似乎是谷歌播放服务8.1中的一个错误.这个问题可以在这里讨论.https://code.google.com/p/android/issues/detail?id=189079&can=1&q=error%20505&sort=-opened&colspec=ID%20Status%20Priority%20Owner%20Summary%20Stars%20Reporter%20Opened
要记住的一点是,它可能是几件事,并且您唯一可以通过505错误验证的是,存在某种冲突,并且它可能是也可能不一定是自定义权限冲突.