【问题标题】:What should be the package name of android app?android应用程序的包名应该是什么?
【发布时间】:2011-12-25 21:15:34
【问题描述】:

我想知道android app的包名应该是什么?意味着通常我们使用 com.appname 或 com.organizationName.appName,但是当我们将应用程序提交到市场时,有时它会显示与包名称相关的错误 - 请更改包名称。不应该以 com 等开头。

我想知道为什么会这样? android 应用程序的包名应该是什么?

如果有人知道这个问题的原因或答案,请告诉我。

提前致谢。

【问题讨论】:

    标签: android package


    【解决方案1】:

    如此处所述:包名全部小写,以避免与类或接口的名称冲突。

    公司使用颠倒的互联网域名来开始他们的包名——例如,com.example.mypackage for a package named mypackage created by a programmer at example.com

    单个公司内发生的名称冲突需要按照该公司内的约定进行处理,可能通过在公司名称后包含地区或项目名称(例如,com.example.region.mypackage)。

    Java 语言本身的包以 java 开头。或 javax。

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

    【讨论】:

    • 最后的包名在 Android Studio 中无效,见Issue 65570
    【解决方案2】:

    Android 遵循与 Java 相同的命名约定,

    命名约定

    包名全部小写,避免与类名或接口名冲突。

    公司使用颠倒的 Internet 域名来开始他们的包名——例如,com.example.mypackage 表示由 example.com 的程序员创建的名为 mypackage 的包。

    单个公司内发生的名称冲突需要按照该公司内的约定进行处理,可能通过在公司名称后包含地区或项目名称(例如,com.example.region.mypackage)。

    Java 语言本身的包以 java 开头。或 javax。

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

    使包名称合法化:

           Domain Name                            Package Name Prefix
    
    hyphenated-name.example.org             org.example.hyphenated_name
    example.int                             int_.example
    123name.example.com                     com.example._123name
    

    【讨论】:

    • 是否允许使用破折号和下划线?
    【解决方案3】:

    正如您所说,包名称通常采用“com.organizationName.appName”的形式 - 全部小写且没有空格。听起来你上传应用时输入的包名和AndroidManifest中声明的不一样。

    【讨论】:

    • 其实前几天我在提交申请,然后市场给我的信息是你应该改变你的包名,“com”是不允许的。这就是为什么我想知道为什么会出现这种类型的消息以及 android 应用程序的正确包名称是什么?谢谢。
    • @Mansi 看起来你试图只使用“com”作为你的包名。这可能是不允许的。包名称过去更加细化。
    • 是的,我知道只有 com 是不允许的。实际上我的包名是“com.organizationName.appName”。我收到了那个错误信息。
    【解决方案4】:

    目前应用商店不允许上传以“com.example”开头的包名。 否则,所有其他以“com”开头的包名都是允许的。

    【讨论】:

      【解决方案5】:

      访问https://developers.google.com/mobile/add并尝试填写“Android包名”。在某些情况下,它可能会写入错误:“无效的 Android 包名称”。

      https://developer.android.com/studio/build/application-id.html 写着:

      虽然应用程序 ID 看起来像一个传统的 Java 包 name,应用ID的命名规则有点多 限制性:

      • 它必须至少有两个段(一个或多个点)。
      • 每个句段必须以字母开头。
      • 所有字符都必须是字母数字或下划线 [a-zA-Z0-9_]。

      所以,“0com.example.app”和“com.1example.app”是错误的。

      【讨论】:

        【解决方案6】:

        包名是反向域名,它是Playstore上每个应用程序的唯一名称。您不能上传具有相同包名的两个应用程序。 您可以从 playstore url 查看应用程序的包名称

        https://play.google.com/store/apps/details?id=package_name

        因此您可以在上传之前轻松地在 Playstore 上检查此包名称是否已被其他应用使用。

        【讨论】:

          【解决方案7】:

          包名称为 0 可能会导致 sharedPreference 出现问题。

          (好的)con = createPackageContext("com.example.android.sf1", 0);

          (有问题但没有错误)

          con = createPackageContext("com.example.android.sf01", 0);
          

          【讨论】:

            猜你喜欢
            • 2016-07-19
            • 2014-12-16
            • 2011-06-27
            • 2021-12-04
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-11-16
            • 1970-01-01
            相关资源
            最近更新 更多