安卓5.0棒棒糖应用安装时显示未知错误代码:“-505”

17

当下载应用程序时,会出现以下文本的错误对话框: 应用程序安装期间出现未知错误代码:"-505"


如果您正在使用捆绑了Google Maps的库项目,并且您的用户报告了-505错误,请参阅此答案以获取可能的解决方案:https://dev59.com/sF8d5IYBdhLWcg3wvkSN#32770691 - DiscDev
8个回答

29

我已经找到了“INSTALL_FAILED_DUPLICATE_PERMISSION”的问题所在。

如果您使用的是Android 5.0并启用了多用户,请检查“访客”帐户中是否有可能导致问题的应用,并卸载它。然后回到主用户,尝试再次安装该应用程序。对我来说有效!希望Google修复这个与多个账户相关的问题。


谢谢!这个修复了我的问题。肯定是多个账户的问题。 - DalvikDroid
我也遇到了同样的问题,但已经解决了。我猜他们应该显示适当的消息。 - Paresh Dudhat
如果问题得到解决,请将问题标记为已接受。 - Brigadier
4
我在没有多个帐户的5.0.1版本上遇到了这个问题 :( - Horse
@Horse你是否正在一个库项目中使用Google Maps? 如果是,我已经发现了一个解决方法:https://dev59.com/sF8d5IYBdhLWcg3wvkSN#32770691 - DiscDev
@DiscDev 谢谢,但不是这个问题。这是我使用的 Cordova 框架出了问题,并且安装了各种版本的应用程序(甚至在不同的命名空间中)。 - Horse

6

我也遇到了这个问题。我发布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"/>

to

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

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

并且在接收者的中:

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

to:

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

1
很棒的解决方案。如果你没有指出来,我也会错过更改类别。非常感谢! - Stephen
很高兴对你有所帮助,@Stephen! - ViliusK
很好的解决方案,我不知道我们可以在清单文件中使用 ${packageName}。 - Jemshit Iskenderov

6

在我的情况下,这是因为我发布了2个基于相同库的应用程序(免费版和付费版),该库使用Google Play服务/ Google Maps。 Google Maps正在使用一个内容提供程序,要求使用您的库的应用程序正确配置才能在库内工作。

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

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

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

症状

1.) 用户在从 Play Store 安装您的应用时,会看到令人恐惧的“-505”安装错误。

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

enter image description here

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"
}

更多阅读内容可以在原始缺陷报告中找到: 问题 784: 多个应用程序使用相同的授权提供程序名称


4

尝试使用adb卸载应用程序:

adb uninstall com.yourpackage

3
我认为答案已经由@Brigadier和@andude传达了出来。
而且这似乎是从Lollipop升级开始的。 以下是相同问题的根本原因,您可以在安装时在Logcat中进行交叉检查。
你的设备上主要有两个应用程序拥有共同签名的权限。 即 如果您一直在使用Google地图或任何其他需要自定义签名(< Package-name >.MAPS_RECEIVE或类似)的模块进行开发,则最有可能存在两个具有相同签名权限的应用程序(即这些权限中的包名称相同)。

1
这个问题是因为在卸载后,该应用程序仍然存在于您的应用程序列表中,此问题出现在Android 5.0或更高版本(棒棒糖)上。要解决此问题,您应该执行以下操作-
  • 转到设备设置并选择应用
  • 在此列表中,您将获得带有“未安装”标记的应用程序
  • 打开应用程序并选择菜单按钮
  • 点击选项菜单并选择“卸载所有用户” 执行以上操作后,问题将得到解决。

0

这个错误意味着在Android清单文件中存在重复的权限。不仅是一个应用程序内部,而且其他应用程序也有相同的权限。例如,在使用adb install安装应用程序时,它会显示这个-505错误的含义。因此,第一个应用程序将安装成功,但当您安装第二个应用程序时,就会出现这个错误。

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

因此,请确保在应用商店中没有两个具有相同perm包名称的应用程序。


0

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

我遇到了类似的问题,但在我的情况下,是一个旧的开发构建停留在我的设备上,当我尝试从Play商店安装时,就会出现这个错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接