Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何忽略android'中的无效字符;旅客名单_Android_Eclipse_Manifest - Fatal编程技术网

如何忽略android'中的无效字符;旅客名单

如何忽略android'中的无效字符;旅客名单,android,eclipse,manifest,Android,Eclipse,Manifest,我有android的公共清单文件,假设我有以下权限: <uses-permission android:name="android.permission.RECEIVE_SMS" /> 如果我在权限中添加特殊字符,如“@” <uses-permission android:name="android.permission.RECEIVE_SMS@" /> Eclipse给出错误“标记属性名称包含无效字符'@' 显然是因为“@” 所以,我想用清单中我想要的任何特

我有android的公共清单文件,假设我有以下权限:

<uses-permission android:name="android.permission.RECEIVE_SMS" />

如果我在权限中添加特殊字符,如“@”

<uses-permission android:name="android.permission.RECEIVE_SMS@" />

Eclipse给出错误“标记属性名称包含无效字符'@' 显然是因为“@”

所以,我想用清单中我想要的任何特殊字符来编译我的程序。 我尝试通过进入
Window->Prefences->Android->Lint错误检查来禁用错误检查

它不起作用。 我还尝试通过转到
Window->Prefences->Validation
禁用XML验证器

它也不起作用。(或者可能是我在最后一步做错了什么,eclipse说了一些关于完全重建的事情,可能是我没有正确地应用设置?

不,你不能这样做 它在android SDK中指定。您永远无法更改这些“常量”字符串。Android标识您希望为应用程序使用的权限


但是,对于res/strings.xml,由于它们是应用程序中要使用的字符串,所以可以使用允许的特殊字符

您可以在Eclipse中执行此操作:

  • 打开“问题”视图。它通常位于eclipse窗口的底部(logcat所在的位置)
  • 将有“错误”出现:“标记属性具有无效字符…”
  • 右键单击此错误消息并将其删除
  • 现在,您应该能够导出已签名的应用程序或将其部署到设备上


    每次此错误再次出现时,您都必须执行此操作。

    但您为什么需要它呢?如果这是一个许可,它就不会有任何特殊的性质。我很好奇-你为什么需要它?即使你设法做到这一点,Android可能会认为这个许可与<代码>收件人> <代码>不同,所以你的应用程序会崩溃。我是一个安全研究者,这真的很重要。难道没有办法解决这个问题吗?我认为,如果您反编译APK、编辑它(插入我提到的字符)并使用apktool重新编译它,您可以通过“强制”来更改清单的权限。或者它不允许你重新编译?@maria——如果你想要自定义权限,那完全是另一回事了@玛丽亚——事实上我认为有一种方法——我能够在月食中重现它。看看我的答案。到目前为止,我还不知道这是可能的。让我也试试吧@玛丽亚-是的,我也对Eclipse如何允许覆盖它的行为感到惊喜。