4

我已经读过,
-> 创建一个 Android 项目(http://developer.android.com/training/basics/firstapp/creating-project.html
-> 唯一的包名称(http://docs.oracle.com/javase /specs/jls/se7/html/jls-6.html#d5e6484

我有一个域名“280w.info”。我刚开始 Android 编程。

  1. 我认为包名称是 "info._280w.(project)" 。所以,我创建了“info._280w.Utest”。
  2. 单击“调试测试”作为 Android 应用程序。午餐安卓模拟器。
  3. 有错误的控制台[2013-04-16 21:52:26 - Utest] Installation failed due to invalid APK file!
  4. 我检查了logcat。并发现错误。 04-16 12:52:37.273: E/PackageParser(505): parsePackageLite error: <manifest> specifies bad package name "info._280w.utest": bad character '_'
  5. 接下来,我查看 PackageParser.java ( /platform/frameworks/base/+/master/core/java/android/content/pm/PackageParser.java )。
  6. 我找到了验证码。if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {在第 767 行。

此代码对 Java 的唯一包名称规则是否错误?或者,我猜包命名错误吗?

4

2 回答 2

3

简短回答:使用 Android 识别的任何包名称。

参考Android基础,

通常最好使用以组织或发布者实体的反向域名开头的名称

和 Java 文档,

在某些情况下,Internet 域名可能不是有效的软件包名称。以下是处理这些情况的一些建议约定:( http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html )

它们只是建议,而不是严格的规则或规范。

实际上,在 Play Store 上发布的很多应用程序的包名不是以反向域名开头的。没有域部分检查,Android 和 Google Play 商店只检查整个包名,因此几乎没有命名空间发生冲突。

于 2013-04-16T14:01:33.837 回答
1

我认为问题在于下划线,但我不确定您是否可以尝试: info.280w.projectname 。

于 2013-04-16T13:32:31.730 回答