1

对于我的 Android 应用,我需要<application>在 AndroidManifest.xml 中添加以下属性:

<application android:name="de.myapp.My-App.de">

该项目的名称是“My-App.de”。我知道在这里使用破折号和点不是一个好主意,但我无法更改它。产品负责人希望这样称呼它。

由于我收到一条错误消息,我只是用一个“\”字符转义了破折号,这导致了这个名称:

<application android:name="de.myapp.My\-App.de">

它是否正确?最后一个点也必须转义吗?

4

4 回答 4

2

在您strings.xmlres/values文件夹下,您可以像这样添加您的应用名称:

<string name="app_name">de.myapp.My-App.de</string>

然后在你的AndroidManifest.xml你可以参考它:

<application android:name="@string/app_name">

这将允许您的应用名称包含破折号。

于 2013-03-19T15:57:07.447 回答
2

为什么不使用android:label

只是一个旁注。如果您的客户告诉您使用钚键盘而不是普通键盘,您会接受吗?有时(几乎每次)我们必须摆脱与我们背景不同的客户,尤其是在计算机科学领域。如果某事不能做(或不应该做或其他什么),你应该说服你的客户。你可以给他们很多理由:系统不太安全或可能受到损害,应用程序变得不稳定,客户想要的东西可以以更容易理解的方式完成,等等。

至少在我的公司,我得到报酬来开发提供建议,即使我与客户交谈,我也倾向于确保他们了解他们想要什么的含义,知道什么不能做,什么应该做反而。

编辑:

一些资源:

http://developer.android.com/guide/topics/manifest/application-element.html#nm

Name 是Application 子类的完全限定名称。您可能知道,类不能用破折号编写。我们都知道,Android 的命名约定并不是世界上最准确的,所以总是会出现这样的问题。尝试在默认情况下添加@string/app_name一个破折号。我不在我的 Android 项目面前,但它也应该可以工作。如果没有,请尝试使用 CDATA 标记将字符串括起来:

<string name="app_name"><![CDATA[de.myapp.My-App.de]]></string>

这避免了 xml 转义文本(这应该不是必需的,但谁知道)。

于 2013-03-19T15:59:01.387 回答
0

我建议您将您的应用程序名称存储在 string.xml 中并编码特殊字符 -(破折号)和 . (点)到 unicode 你可以在这里参考 unicode -> http://jrgraphix.net/research/unicode_blocks.php?block=0

例如 .My\u002DApp\u002Ede

于 2013-03-19T15:59:23.800 回答
0
<application android:name="de.myapp.My-App.de"> is not correct.

你只需使用

<application android:name="Package_name.Application_class_name">

包和类的名称必须在哪里

于 2013-03-21T06:18:11.547 回答