【问题标题】:android 5.0 lollipop app install shows Unknown error code during application install: "-505"android 5.0 lollipop app install 在应用程序安装过程中显示未知错误代码:“-505”
【发布时间】:2014-10-21 16:07:57
【问题描述】:

下载应用程序时,会显示带有以下文本的错误对话框: 应用程序安装期间出现未知错误代码:“-505”

【问题讨论】:

  • 如果您正在使用捆绑 Google 地图的库项目并且您的用户报告 -505 错误,请参阅此答案以获取可能的解决方案:stackoverflow.com/a/32770691/1103584

标签: android installation android-5.0-lollipop


【解决方案1】:

我发现了“INSTALL_FAILED_DUPLICATE_PERMISSION”的问题。

如果您启用了 Android 5.0 和多用户,请检查您的“访客”帐户中是否存在导致问题的应用并将其卸载。然后返回到您的主要用户并尝试再次安装该应用程序。它对我有用!希望 Google 使用多个帐户解决此问题。

【讨论】:

  • 谢谢!这为我解决了这个问题。肯定是多个帐户的问题。
  • 我也遇到了同样的问题。并解决了它。我猜他们应该显示正确的信息。
  • 如果解决了问题,请将问题标记为已接受。
  • 在没有多个帐户的情况下在 5.0.1 上出现此问题 :(
  • @Horse 你在图书馆项目中使用谷歌地图吗?如果您是,我发现了一个解决方法:stackoverflow.com/a/32770691/1103584
【解决方案2】:

也有这个问题。我发布了 SandboxProduction 应用程序,它们的包名称不同,但 GCM 权限相同。

我开始在 AndroidManifest.xml 文件中使用${packageName}

我变了

<!-- GCM specific permissions -->
<permission
    android:name="com.playgong.permission.C2D_MESSAGE"
    android:protectionLevel="signature"/>

<uses-permission android:name="com.playgong.permission.C2D_MESSAGE"/>

<!-- GCM specific permissions -->
<permission
    android:name="${packageName}.permission.C2D_MESSAGE"
    android:protectionLevel="signature"/>

<uses-permission android:name="${packageName}.permission.C2D_MESSAGE"/>

接收者的intent-filter中来自:

<category android:name="com.playgong"/>

到:

<category android:name="${packageName}"/>

【讨论】:

  • 很好的解决方案。如果您不指出这一点,我也会错过更改类别。非常感谢!
  • 很高兴它对你有用,@Stephen!
  • 很好的解决方案,不知道我们可以在清单中使用 ${packageName}
【解决方案3】:

就我而言,发生这种情况是因为我发布了 2 个应用程序,它们基于使用 Google Play 服务/Google 地图的同一个库(免费版与付费版)。 Google 地图正在使用内容提供程序,该内容提供程序需要正确配置使用您的图书馆的应用程序才能在图书馆内工作。

修复: 确保 defaultConfig.applicationId 在 build.gradle 文件的 android 部分中为使用您的库的每个项目定义

android {
    defaultConfig.applicationId = "com.company.appname"
}

我建议使用特定应用的包名。通过此修复,提供程序名称将不再冲突,您的应用将按预期运行。

症状

1.) 您的用户在从 Play 商店安装您的应用时会看到可怕的“-505”安装错误。

2.) 当您尝试通过 Android Studio 安装使用您的库的第二个应用时,您将看到此错误消息:

3.) 在您的控制台中,您将看到如下消息:

Package couldn't be installed in /data/app/com.company.appname-1
com.android.server.pm.PackageManagerException: 
Can't install because provider name 
com.google.android.gms.measurement.google_measurement_service 
(in package com.company.appname) is already used by
com.company.otherInstalledAppName

修复方法是确保在 build.gradle 文件的 android 部分中为使用您的库的每个项目定义 defaultConfig.applicationId

android {
    defaultConfig.applicationId = "com.company.appname"
}

可以在原始错误报告中找到更多阅读内容:Issue 784: Multiple apps using same authority provider name

【讨论】:

    【解决方案4】:

    尝试使用 adb 卸载应用:

    adb uninstall com.yourpackage
    

    【讨论】:

      【解决方案5】:

      我认为@Brigadier 和@andude 已经传达了答案。

      这似乎是从 Lollipop 升级开始的。 这是相同的根本原因,您可以在安装时在 Logcat 中进行交叉检查。

      您的设备上主要有 2 个应用程序具有共同的签名权限。 IE 如果您一直在使用 google maps 或任何其他需要自定义签名(.MAPS_RECEIVE 或类似)的模块进行开发,那么您肯定有两个具有相同签名权限的应用程序(即这些权限中的包名称是一样的)..

      【讨论】:

        【解决方案6】:

        这是因为卸载后该应用程序仍然存在于您的应用程序列表中,此问题出现在 Android 5.0 或更高版本(Lollipop) 上。要解决此问题,您应该执行以下操作 -

        • 转到设备设置并选择应用程序
        • 在此列表中,您将获得带有“未安装”标签的应用
        • 打开应用并选择菜单按钮
        • 点击选项菜单并选择“为所有用户卸载” 完成上述操作后,问题就解决了。

        【讨论】:

          【解决方案7】:

          此错误表示 Android Manifest 中存在重复权限。不仅在一个应用程序中,而且在另一个应用程序中也有。例如,当使用 adb install 安装应用程序时,它会显示此 -505 错误的含义。因此,第一个应用程序可以正常安装,但是当您安装第二个应用程序时,会出现此错误。

          失败 [INSTALL_FAILED_DUPLICATE_PERMISSION perm=com.example.permission.XYZ pkg=com.example]

          因此,请确保在 appstore 中不要有两个具有相同 perm 包名称的应用。

          【讨论】:

            【解决方案8】:

            多个用户在同一设备上安装相同的应用程序可能会导致此错误。请从设备中删除其他应用程序,这应该可以工作。

            我遇到了类似的问题,但在我的情况下,这是我设备上的旧开发版本,当我尝试从 Play 商店安装时,出现了此错误。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-06-27
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多