这两个在android中被视为相同的包名

时间:2013-09-23 07:38:11

标签: android android-package-managers

所以我在google play发布了一个应用程序,但不幸的是我忘记了签名证书的别名密码,但我记得我用它签署证书的密码。

经过大量搜索后,我得出结论,我无法以任何方式检索别名密码,现在我正在google play发布应用程序的新副本。

此外,我还通过 Dianne Hackborn

撰写了这篇文章

things-that-cannot-change.html

和包名是其中一个。

所以,现在,如果我发布这个具有相同软件包名称的新应用程序并取消发布现有应用程序,并且已安装现有应用程序的用户现在安装此新应用程序我认为这将是一个错误根据上面的帖子。

但根据包名称约定,我将包命名为

com.mycompanyname.beta

对于这个新的应用上传,我想使用包名称

com.mycompanyname.android那么这些包会发生冲突吗?

4 个答案:

答案 0 :(得分:3)

com.mycompanyname.betacom.mycompanyname.android是不同的软件包名称,所以不,它们不会发生冲突。

如果用户安装了第一个应用(com.mycompanyname.beta),然后再安装第二个应用(com.mycompanyname.android),则最终会在其设备上安装这两个应用。

答案 1 :(得分:1)

应用程序由包名称标识。因此,包名称必须是唯一的。这就是为什么每个人都使用一些域名来创建一个独特的包(域也是独一无二的)。

他们不会'冲突'

  

com.mycompanyname.beta

     

com.mycompanyname.android

但是对于安全的用例,这将完成工作

  

com.mycompanyname.clientname.android

更改包名称不会出现问题, Android SDK将有效处理参考

来自Android 规格

  

应用程序的完整Java语言样式包名称。名字   应该是独特的。名称可以包含大写或小写字母   ('A'到'Z'),数字和下划线('_')。但是,个人   包名称部分只能以字母开头。避免冲突   与其他开发人员一样,您应该使用Internet域名所有权作为   您的包名称的基础(反向)。例如,应用程序   由Google发布,以com.google开头。你也应该永远不要使用   发布应用程序时的com.example命名空间。

     

包名称用作应用程序的唯一标识符。   它也是应用程序进程的默认名称(请参阅    element的进程进程属性)和默认值   活动的任务亲和力(参见元素的   taskAffinity属性)。

     

警告: 发布应用程序后,您无法更改   包裹名字。包名称定义了应用程序的标识,因此   如果你改变它,那么它被认为是一个不同的应用程序   并且以前版本的用户无法更新到新版本

答案 2 :(得分:0)

不会有任何冲突,而不是使用不同的包

制作您的应用程序的副本

答案 3 :(得分:0)

com.mycompanyname.betacom.mycompanyname.android是您应用的different package names。 每个never be conflict结束。这两个应用程序都可以安装在同一设备中。

如果是冲突,那么最好检查应用包的清单文件。可能有相同的包裹。然后它就会发生冲突。您的应用程序包名称应该是那样的

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mycompanyname.beta"
    android:versionCode="1"
    android:versionName="1.0" >
</manifest >

和其他一个

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mycompanyname.android"
    android:versionCode="1"
    android:versionName="1.0" >
</manifest >