Android Play 商店错误 -505
Android Play Store Error -505
将 APK 上传到 Android 开发者控制台时,一切正常,但 android 5.0 及更高版本的部分用户无法安装或升级 APK。这些用户看到 Google Play 商店错误 505。
有几种不同的资源告诉您 505 错误是权限冲突。从 Android Lollipop 开始,您将无法再拥有同名 https://developer.android.com/about/versions/android-5.0-changes.html#custom_permissions 的重复自定义权限。如果您检查 Whosebug 是否存在此错误,您会发现多份报告称有人将此作为解决方案。虽然这有时可能是导致此错误的原因,但还有其他几个原因可能会导致此错误和其他冲突。
1。多个应用定义了相同的权限
如果两个完全不同的应用程序定义了相同的权限,例如,如果您有一个用户应用程序和一个管理员应用程序,并且它们都具有以下内容:
<permission
android:name="same.package.name.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
2。由不同密钥签名的同一应用程序
您有相同的应用程序,但使用不同的密钥签名。例如,如果您有一个发布版本和一个调试版本,您将遇到冲突,因为系统将其视为两个不同的应用程序请求相同的权限。
3。冲突的权威
但是可能会出现完全不同的情况,这种情况不太明显。 505 错误也可能发生在权限冲突的情况下。如果两个不同的应用程序声明相同的提供程序,例如
<provider
android:name=".provider.YourProvider"
android:authorities="com.roqbot.client.YourProvider"
android:exported="false" />
这也会造成冲突。
最后也是最难发现的冲突是 Google Play Services 8.1 及更高版本可能发生的冲突。如果您没有像这样在 build.gradle 文件中定义应用程序 ID:
defaultConfig {
applicationId "com.example.my.app"
}
它可能 auto-generate 提供程序会与其他应用程序发生冲突。要检查这一点,请进入您的 build>intermediates>manifests>full>release>AndroidManifest.xml 并寻找
<provider
android:name="com.google.android.gms.measurement.AppMeasurementContentProvider"
android:authorities="com.google.android.gms.google_measurement_service"
android:exported="false" />
这里的权限名会和其他应用冲突。如果您将 applicationId 添加到默认配置,它会将此权限更改为
<provider
android:name="com.google.android.gms.measurement.AppMeasurementContentProvider"
android:authorities="com.example.my.app.google_measurement_service"
android:exported="false" />
这非常微妙,似乎是 google 播放服务 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 错误验证的是存在某种冲突,它可能是也可能不是自定义权限冲突。
错误名称:错误 505
问题:这是在从 Google Play 商店更新或安装应用程序期间遇到的异常错误代码。它显示一条错误消息,指出“应用程序安装期间出现未知错误代码 505”。
以下原因导致此错误。
• 当您尝试安装过时版本的应用程序时,通常会看到它。
• 错误 505 可能是由于应用程序与您的 Android OS 版本不兼容造成的。
• 也可能是由于缓存冲突或应用程序数据崩溃引起的。
• 错误 505 也可能是由于 Google 帐户同步问题引起的。
解法:
• 首先重新启动您的 Android 设备,因为这一步通常可以消除任何类型的错误。如果它不起作用,请尝试这些简单的步骤。
• 清除 Google Play 商店、Google 服务框架和下载管理器的缓存和数据。为此首先转到设置 >> 然后是应用程序 >> select 所有 >> 然后 Google 播放存储和清除缓存和清除数据。还清除 Google 服务的缓存和数据。
如果您使用的是 Facebook SDK 并遵循官方示例代码,您也可能会遇到此问题。就我而言,我在 2 个不同应用程序的清单上使用了相同的内容提供者名称。
<provider
android:authorities="com.facebook.app.FacebookContentProvider123"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />
我忘记更改默认名称 com.facebook.app.FacebookContentProvider123。最后通过添加动态 applicationId 作为提供者名称来修复它。
<provider
android:authorities="com.facebook.app.FacebookContentProvider.${applicationId}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />
将 APK 上传到 Android 开发者控制台时,一切正常,但 android 5.0 及更高版本的部分用户无法安装或升级 APK。这些用户看到 Google Play 商店错误 505。
有几种不同的资源告诉您 505 错误是权限冲突。从 Android Lollipop 开始,您将无法再拥有同名 https://developer.android.com/about/versions/android-5.0-changes.html#custom_permissions 的重复自定义权限。如果您检查 Whosebug 是否存在此错误,您会发现多份报告称有人将此作为解决方案。虽然这有时可能是导致此错误的原因,但还有其他几个原因可能会导致此错误和其他冲突。
1。多个应用定义了相同的权限
如果两个完全不同的应用程序定义了相同的权限,例如,如果您有一个用户应用程序和一个管理员应用程序,并且它们都具有以下内容:
<permission
android:name="same.package.name.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
2。由不同密钥签名的同一应用程序
您有相同的应用程序,但使用不同的密钥签名。例如,如果您有一个发布版本和一个调试版本,您将遇到冲突,因为系统将其视为两个不同的应用程序请求相同的权限。
3。冲突的权威
但是可能会出现完全不同的情况,这种情况不太明显。 505 错误也可能发生在权限冲突的情况下。如果两个不同的应用程序声明相同的提供程序,例如
<provider
android:name=".provider.YourProvider"
android:authorities="com.roqbot.client.YourProvider"
android:exported="false" />
这也会造成冲突。
最后也是最难发现的冲突是 Google Play Services 8.1 及更高版本可能发生的冲突。如果您没有像这样在 build.gradle 文件中定义应用程序 ID:
defaultConfig {
applicationId "com.example.my.app"
}
它可能 auto-generate 提供程序会与其他应用程序发生冲突。要检查这一点,请进入您的 build>intermediates>manifests>full>release>AndroidManifest.xml 并寻找
<provider
android:name="com.google.android.gms.measurement.AppMeasurementContentProvider"
android:authorities="com.google.android.gms.google_measurement_service"
android:exported="false" />
这里的权限名会和其他应用冲突。如果您将 applicationId 添加到默认配置,它会将此权限更改为
<provider
android:name="com.google.android.gms.measurement.AppMeasurementContentProvider"
android:authorities="com.example.my.app.google_measurement_service"
android:exported="false" />
这非常微妙,似乎是 google 播放服务 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 错误验证的是存在某种冲突,它可能是也可能不是自定义权限冲突。
错误名称:错误 505
问题:这是在从 Google Play 商店更新或安装应用程序期间遇到的异常错误代码。它显示一条错误消息,指出“应用程序安装期间出现未知错误代码 505”。
以下原因导致此错误。
• 当您尝试安装过时版本的应用程序时,通常会看到它。
• 错误 505 可能是由于应用程序与您的 Android OS 版本不兼容造成的。
• 也可能是由于缓存冲突或应用程序数据崩溃引起的。
• 错误 505 也可能是由于 Google 帐户同步问题引起的。
解法:
• 首先重新启动您的 Android 设备,因为这一步通常可以消除任何类型的错误。如果它不起作用,请尝试这些简单的步骤。
• 清除 Google Play 商店、Google 服务框架和下载管理器的缓存和数据。为此首先转到设置 >> 然后是应用程序 >> select 所有 >> 然后 Google 播放存储和清除缓存和清除数据。还清除 Google 服务的缓存和数据。
如果您使用的是 Facebook SDK 并遵循官方示例代码,您也可能会遇到此问题。就我而言,我在 2 个不同应用程序的清单上使用了相同的内容提供者名称。
<provider
android:authorities="com.facebook.app.FacebookContentProvider123"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />
我忘记更改默认名称 com.facebook.app.FacebookContentProvider123。最后通过添加动态 applicationId 作为提供者名称来修复它。
<provider
android:authorities="com.facebook.app.FacebookContentProvider.${applicationId}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />