Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Multiple substitutions specified in non-positional format

Multiple substitutions specified in non-positional format

作者头像
ppjun
发布于 2018-09-05 04:07:20
发布于 2018-09-05 04:07:20
5.6K10
代码可运行
举报
文章被收录于专栏:ppjun专栏ppjun专栏
运行总次数:0
代码可运行

as3.0以上在gradle.properties使用android.enableAapt2=true,as就会提示将要过期了,请设置成 android.enableAapt2=false。当我设置成false啦,这时候编译出错误。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Multiple substitutions specified in non-positional format; did you mean to add the formatted="false"

就是当你的string.xml上含有要格式的字符串比如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<string name="time_picker">%s时</string>

这时候会提示上述错误,因为sdk采用了更加严格的aapt编译,正确的用法如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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:


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:


 <string name="welcome_messages">Hello, %1$s! You have %2$d new messages.</string>

解决方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
之前我们用的%s 改为%1$s,如果在一个字符串有两个%s,%s。现在要改为%1$s,%2$s,重新编译没ok了。

拓展

如果字符串含有%,而不需要格式化可以有三种方法解决

  1. 加上formatted="false"
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<string name="time_picker" formatted="false">%s时</string>
  1. 用两个%%
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<string name="time_picker">%%s时</string>
  1. 用转义字符\
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<string name="time_picker" >\%s时</string>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.08.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
very good share
very good share
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
条码扫描二维码扫描——ZXing android 源码简化
  最近公司的Android项目需要用到摄像头做条码或二维码的扫描,Google一下,发现一个以Apache License 2.0 开源的 ZXing项目。Zxing项目里的Android实现太过复杂多余东西太多,得对其进行简化。
战神伽罗
2019/07/24
2.7K0
条码扫描二维码扫描——ZXing android 源码简化
Android Studio3.0更新之路(遇坑必入)
如果你从Android Studio内部点击更新的话,会跳转到Android的官网,没有梯子的同学可以去这个网站下载更新:
用户2802329
2018/08/07
7580
Android Studio3.0更新之路(遇坑必入)
将旧项目迁移到AndroidStudio3.0
原来的项目用到了kotlin以及kapt,升级到了androidstudio 3.0报了上面的错误,需要在项目的gradle.properties中添加:
JarvanMo
2018/09/06
7680
开发工具总结(4)之Android Studio3.0填坑指南
作为这个世界上走在最前沿的生物“猿”,怎么能对新事物一无所知呢,10月26日,随着Android 8.1 Oreo的预览版发布,Android Studio3.0正式版也发布了,作为Android开发的猿们我们应该早就知道谷歌在今年5月的开发者大会上就说了要支持Kotlin语言,所以这次更新一个比较大的点就在于支持Kotlin语言了,下面就跟着LZ的脚步来探索一下AS3.0吧 相信很多人很早就体验过谷歌爸爸放出来的体验版本了,虽然说正式版已经出了,但是很多人也不敢轻易贸然的更新,因为怕会掉进坑里出不来(真是一只胆小的猿,鉴定完毕)。
AWeiLoveAndroid
2018/09/03
1.1K0
开发工具总结(4)之Android Studio3.0填坑指南
Android 调试小技巧
最近在调试公司中的Android项目时,遇到的一些问题,及时做个总结,以免后面再遇到这类问题时再浪费时间。
音视频_李超
2020/04/02
9330
安卓开发中strings.xml的使用
为了使用方便也是为了代码规范化,我们都将文字信息放在res-values-strings.xml中, 因为开发中需要用到将文字的换行,百度了一下,可以将文字段信息直接在strings.xml文件中换行 具体做法 <string name="aaaa">属性\n攻击力+60点,并附带18\%%吸血效果\n\n使用\n3秒内普通攻击附带84\%%吸血效果,冷却时间50秒。</string> 我们看到其中\n就是换行符, 需要注意的是在文字段信息中,想要输出%号可不是直接打一个百分比号,否则会出现错误 1 Des
听着music睡
2018/05/18
1.6K0
aapt与aapt2--资源id固定和PUBLIC标记
整片文章是围绕 tinker 的 TinkerResourceIdTask 里的知识点进行扩展的。
静默加载
2021/07/16
1.5K0
aapt与aapt2--资源id固定和PUBLIC标记
python str模块
str字符串 str 转义字符 格式化 内建函数 字符串 表示文字信息 用单引号,双引号,三引号括起来 s = 'I love ' print(s) I love s = "I love " print(s) I love s = """ I Love """ print(s) I Love 转义字符 用一个特色的方法表示出一系列不方便写出的内容,比如回车键,换行符,退格键 借助反斜杠字符,一旦字符串中出现反斜杠,则反斜杠后面一个或几个字符表示已经不是原来的意思了,进行了转义 在字符串中,一旦出现反斜
ruochen
2021/03/04
2.3K0
python str模块
第2章 Python基础 ( 细讲数据类型-字符串 )
字符串是一个有序的字符的集合,用于存储和表示基本的文本信息,’ ‘或’’ ‘’或’’’ ‘’’中间包含的内容称之为字符串
axiomxs
2021/11/26
1910
第2章 Python基础 ( 细讲数据类型-字符串 )
django 1.8 自定义模板标签(simple_tag)和过滤器(filter)
为了解决应用中展示逻辑的需求,Django的模板语言提供了各式各样的内建标签以及过滤器。然而,你或许会发现模板内建的这些工具集合不一定能全部满足你的功能需要。在Python中,你可以通过自定义标签或过滤器的方式扩展模板引擎的功能,并使用{{ load }}标签在你的模板中进行调用。
卓越笔记
2023/02/18
2K0
【连载】聊聊 APK(三) —— Android 资源编译的秘密
上两期我们讲了 APK 里面 Dex 的东西,明白了 Dex 只是 classes 的某种打包形式,我们暂时不拘泥于细节,关于代码的部分就告一段落。我们知道除了代码,一个应用里,资源占用了相当大的一部分。
程序亦非猿
2019/08/16
1.4K0
【连载】聊聊 APK(三) —— Android 资源编译的秘密
关于String.format(String format, Object... args)
通过查看源码可以看到这个方法是从 JDK 1.5 开始引入的,底层是调用了 java.util.Formatter 类的 format 方法。
Li_XiaoJin
2022/06/10
9070
Android 资源文件
Android string.xml为我们的应用程序提供可选样式和格式的文本数据。可以有三种类型的字符串资源:字符串,字符串数组,复数。下面是Android string.xml示例: //普通字符串 <string name="string">Hello world!</string> //单个string占位符 <string name="hello_str">Hello %s!</string> //多个string占位符 <string name="s
code_horse
2018/07/02
1K0
python的字符串学习(三)
学习Python语言,不得不学习在Python中,对字符串的处理,事实上,在Str类中提供了很多的方法来对字符串的处理,比如我们经常见的字符串的大小小写的处理,字符串的分割合并等,那么我们是怎么知道这些方法了?比如我定义了一个字符串,我怎么知道字符串的操作方法有哪些?
无涯WuYa
2018/10/25
5550
python的字符串学习(三)
Python字符串常见操作
参考链接:http://www.cnblogs.com/wupeiqi/articles/4911365.html
py3study
2020/01/19
6130
Python 中那些令人拍案叫绝的功能!
链接:www.oschina.net/translate/python-functions
编程文青李狗蛋
2019/10/10
4400
Python 中那些令人拍案叫绝的功能!
Android Studio 3.0~3.x正式版填坑之路
总看别人的文章,今天尝试着自己来写一篇。在逛论坛时候,无意间发现Android Studio 3.0正式版本推送更新了,早听说AS 3.0添加了许多新功能,然后手贱迫不及待地想先睹为快,结果正中下怀。下载和更新Gradle,半天无响应,只好结束进程强制关闭AS,手动离线下载安装。本以为不会有太大问题,谁知太高估了,进来各种的报错,各种的配置问题,填坑之路就此开始。
AWeiLoveAndroid
2022/05/13
1.8K0
Android Studio 3.0~3.x正式版填坑之路
CString 使用详解
备注Converts this CString object to an uppercase string.
全栈程序员站长
2022/09/06
1.3K0
Python 基础系列--开篇
Python 能带给我的,同样也能带给你,于是我决定尝试写一些 Python 基础系列文章,带你入门 Python,达到能使用 Python 解决日常问题的目的。同时也希望 Python 这门语言能带给你学习和编码的快乐。
somenzz
2020/12/10
4460
Python 基础系列--开篇
【玩转腾讯云】python help函数
python 3.x版本虽然比2.x少了一些内置函数,但是 python 内置 函数没有60个,也有40个,那么多内置函数你记得过来吗?为了方便使用,python 提供了help函数专门用来提供查看函数或模块用途的详细说明;
猿说编程[Python和C]
2020/03/23
1.8K0
相关推荐
条码扫描二维码扫描——ZXing android 源码简化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验