反复检查后发现是string.xml中的 % 导致编译失败,

这是由于新的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>中使用%号

有两个办法可供选择
1.用%%来表示1个%,和转意符号 \ 的用法相同 2.如果你的字符串不需要格式化,可以在你的<string 标签上增加一个属性:formatted="false"例如 <string name="test" formatted="false">% test %</string> 即可

更多相关文章

  1. 开发Android下纯C程序时,打开时提示not found
  2. 9月26号 Android(安卓)SQLiteDatabase 的相关学习记录
  3. 控件(1)spinner
  4. Android(安卓)Service服务的相关介绍
  5. Android(安卓)网络接口
  6. android 通过占位符来动态获得字符串资源
  7. Android(安卓)Launcher2 icon大小修改
  8. android 资源文件String字符串拼接
  9. Debug Android(安卓)and Linux suspend and resume (中文)

随机推荐

  1. android9.0修复无锁屏时休眠后马上亮屏,ui
  2. Android UI设计的三种常见布局(LinearLayo
  3. Android OkHttp3 上传多张图片
  4. Android屏幕旋转时Activity不重新调用onC
  5. 原YUV格式的解析 Android NV21 视频采集
  6. Android中TextView中加图片,超链接,一部分
  7. Android 监听短信接收 获取发件号码、短
  8. Android之开发杂记(一)
  9. Android DownloadManager 的使用
  10. 学习Android之setDataAndType(利用第三方