strings.xml字符串声明报错:name="string"未在默认区域设置找到求助
解决Android strings.xml报错:'name="string" is translated here but not found in the default locale'
嘿,这个报错我之前也碰到过,其实原因很明确,咱们一步步来解决:
错误根源
这个提示说的是:你在某个本地化语言文件夹的strings.xml里(比如values-zh/strings.xml、values-es/strings.xml这类针对特定语言的文件),定义了一个名为string的字符串资源,但你的默认语言文件夹(就是你贴出来的values/strings.xml)里根本没有这个资源项。Android的规则是:所有本地化的资源必须在默认locale里有对应的定义,不然就会触发这个错误。
具体修复步骤
定位问题文件
先去你的项目里找所有带语言后缀的values-xx文件夹,打开里面的strings.xml,找有没有一行类似这样的代码:<string name="string">xxx</string>二选一修复
- 如果你确实需要这个
string资源:那就在你贴出来的默认values/strings.xml里加上对应的条目,比如:<string name="string">这里填默认语言的文本</string> - 如果这个资源是多余的(可能是误加的):直接删掉本地化文件里那行
name="string"的代码就行。
- 如果你确实需要这个
小建议:避免踩坑
顺便提一句,string这个名字尽量别用来当自定义资源名,毕竟它是Android系统里的关键字类的命名,很容易引发冲突,换成更有意义的名字比如app_default_hint之类的会更稳妥。
对了,你贴出来的默认strings.xml代码本身是没问题的,问题全在其他本地化的strings文件里,按上面的步骤查一遍肯定能搞定~
内容的提问来源于stack exchange,提问作者ZIA ANSARI
相关产品推荐
相关产品推荐

