Android编译出现Multiple substitutions specified in non-positional format
来源:互联网 发布:板胡校音器软件 编辑:程序博客网 时间:2024/06/05 15:27
用2.3的SDK编译了一下之前正常的项目,发现在资源文件中%地方会有错误。转一篇相关的文帖。
-----------------------------------------------------------
前段时间更新了ADT和Android SDK 2.3,更新后发现自己2.2下编译的很好的项目出现了问题,错误详细内容为: Multiple annotations found at this line: 反复检查后发现是string.xml中的 % 导致编译失败, 去Google的Android开发者讨论组查看关于这个问题的讨论 后看到了Xavier Ducrohet大神的回复,说这是由于新的SDK采用了新版本的aapt(Android项目编译器),这个版本的aapt编译起来会比老版本更加的严格,然后在Android最新的开发文档的描述String的部分,已经说明了 如何去设置 %s 等符号,下面是文档片段: If you need to format your strings using String.format(String, Object...) , then you can do so by putting your format arguments in the string resource. For example, with the following resource: 如果你需要使用 String.format(String, Object...) 来格式化你的字符串,你可以把格式化参数放在你的字符串中,参见下面的例子: <string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string> In this example, the format string has two arguments: %1$s is a string and %2$d is a decimal number. You can format the string with arguements from your application like this: 在这个例子中,这个格式化的字符串有2个参数, %1$s是个字符串 %2$d 是个浮点数,你可以在你的程序中按照下面的方法来根据参数来格式化字符串: Resources res = getResources(); String text = String.format(res.getString(R.string.welcome_messages), username, mailCount); 那么根据例子上说的我需要把%s换成%1$s才行了,修改后编译通过,程序成功启动。 问题补充: 有读者问如何在<string></string>中使用%号 有两个办法可供选择 最后稍微延伸一下这个格式化变化的原因: 大神Bob Kerns 觉得当前Java的格式化字符串方式可读性不好(我也有同感),然后就写了篇博文来提出他认为的最好的方式, http://bobkerns.typepad.com/bob_kerns_thinking/2010/12/dear-java-better-text-formatting-please.html 显然,Android开发团队认可了他的建议 文章转载自:http://be-evil.org/post-240.html
- error: Multiple substitutions specified in non-positional format; did you mean to add the formatted="false"
attribute?
- error: Unexpected end tag string
- Android编译出现Multiple substitutions specified in non-positional format
- Android编译出现Multiple substitutions specified in non-positional format
- Android编译出现Multiple substitutions specified in non-positional format
- Android编译出现Multiple substitutions specified in non-positional format
- Android工程编译出现Multiple substitutions specified in non-positional format错误的分析
- Android 编译出现Multiple substitutions specified in non-positional format 错误
- Multiple substitutions specified in non-positional format
- Android2.3 SDK编译出现Multiple substitutions specified in non-positional format的分析
- Android2.3 SDK编译出现Multiple substitutions specified in non-positional format的分析
- Android2.3 SDK编译出现Multiple substitutions specified in non-positional format的分析
- Android2.3 SDK编译出现Multiple substitutions specified in non-positional format的分析
- Android2.3 SDK编译出现Multiple substitutions specified in non-positional format的分析
- Android2.3 SDK以上编译出现Multiple substitutions specified in non-positional format的分析
- Android2.3 SDK编译出现Multiple substitutions specified in non-positional format的分析
- Android2.3 SDK编译出现Multiple substitutions specified in non-positional format的分析
- error: Multiple substitutions specified in non-positional format
- Error:(311) Multiple substitutions specified in non-positional format
- Error:(949) Multiple substitutions specified in non-positional format; Android格式化string.xml
- 黑客学习发展流程图
- windows2003server 架设serv-u ftp配置问题
- Android Activity启动模式分析
- .NET导出EXCEL出现乱码问题
- AfxGetApp()->m_pMainWnd和AfxGetMainWnd() 的区别
- Android编译出现Multiple substitutions specified in non-positional format
- 转载]冰血大哥的一篇学习计划
- 六,MFC文件夹打开的操作
- Tomcat性能调优方案
- SAP与PI之间SLD连接,等组件连接
- Oracle日志查看
- 删除Myeclipse被废弃的workspace记录
- memcached server LRU 深入分析
- Scaler