我想知道android应用程序的包名应该是什么?通常我们使用com.appname或com.organizationName.appName,但是当我们将我们的应用程序提交到市场时,有时它会显示与包名相关的错误 - 请更改包名称。它不应该用com等启动。
我想知道为什么会这么开心?什么应该是Android应用程序的包名称?
如果有人知道这个问题的原因或答案,请告诉我。
提前致谢。
答案 0 :(得分:47)
如上所述:包名称全部用小写编写,以避免与类或接口的名称冲突。
公司使用其反向互联网域名开始其软件包名称 - 例如,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”。在这种情况下,建议的约定是添加下划线。例如:
答案 1 :(得分:9)
Android遵循相同的命名约定,如Java,
命名约定
包名称全部用小写编写,以避免与类或接口的名称冲突。
公司使用其反向互联网域名来开始其软件包名称 - 例如,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
答案 2 :(得分:3)
正如您所说,包名称通常采用'com.organizationName.appName'的形式 - 全部小写且没有空格。听起来您在上传应用时输入的包名称与AndroidManifest中声明的包名称不同。
答案 3 :(得分:2)
目前,不允许在app -store中上传以“com.example”开头的包名称。 否则,允许以“com”开头的所有其他包名称。
答案 4 :(得分:1)
包名称是反向域名,它是Playstore上每个应用程序的唯一名称。您不能上传两个具有相同程序包名称的应用。 您可以从playstore网址中查看应用的程序包名称
https://play.google.com/store/apps/details?id=package_name
因此您可以在上传之前轻松地在Playstore上检查此软件包名称是否已被其他应用使用。
答案 5 :(得分:0)
包名称为0可能会导致sharedPreference出现问题。
(好)con = createPackageContext("com.example.android.sf1", 0);
(问题但没有错误)
con = createPackageContext("com.example.android.sf01", 0);
答案 6 :(得分:0)
访问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"是错误。