13

Android 中的包命名约定是:

com.organizationName.appName

但是如果 organizationName 或 appName 以数字或下划线开头,则它成为无效名称,因为 android 不接受以数字或下划线开头的单词。

例如:

com.1organizationName.appName是无效的

重命名这个包的约定是什么?

4

5 回答 5

22

在官方的“Naming a Package” java 文档中,有如下声明:

在某些情况下,互联网域名可能不是有效的软件包名称。如果域名包含连字符或其他特殊字符,如果包名以数字或其他非法用作 Java 名称开头的字符开头,或者如果包名包含保留的 Java 关键字,则会发生这种情况,比如“int”。 在这种情况下,建议的约定是添加下划线

所以在你的情况下,它会是com._1organizationname.appname

编辑:刚刚在Android 文档中找到了这个:

应用程序的完整 Java 语言样式的包名称。名称应该是唯一的。名称可以包含大写或小写字母(“A”到“Z”)、数字和下划线(“_”)。但是,单个包名称部分只能以字母开头。

所以显然它不是Java 风格的。不幸的是,在这种情况下,您最好的选择实际上是拼出数字,例如com.oneorganizationname.appname

于 2012-08-20T17:19:32.233 回答
2

命名约定只是为了帮助您为 Play 市场创建一个唯一的包名称。如果您向后使用公司的网站地址(即 com.websitename.appname),那么 Play 市场中的其他应用不太可能拥有它。您可以为包命名任何您想要的名称,这样您就可以拼出数字以使其更容易(com.oneOrganizationName.appName)。

于 2012-08-20T17:02:48.890 回答
1

请参阅此处有关清单中的“包”属性的信息:

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

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

于 2015-04-16T21:53:24.637 回答
0

you can try co.m_1organizationName.appName or co.m1organizationName.appName this way your package will not be absurd and the address will be more meaningful.

于 2014-09-16T14:54:29.923 回答
-4

您知道,注册一个新域名只需 5 美元。只需注册 oneorganizationName.com 并使用它。您知道它将是唯一的,您知道它将是一个有效的包名称,现在您知道网络钓鱼者和欺骗者不会为自己注册 oneorganizationName.com 来欺骗您的客户。

于 2012-08-20T18:00:44.367 回答