在我的资源 (res/) 文件夹中,我有以下文件。
├── values
│ ├── dimens.xml
│ ├── strings.xml
│ └── values.xml
├── values-en
│ └── strings.xml
├── values-de
│ └── strings.xml
在values/values.xml
我定义了我的应用程序中需要的布尔值:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="myboolean">false</bool>
</resources>
当我在语言设置为英语的设备上运行我的应用程序时,我发现在运行时引用时抛出异常myboolean
:
android.content.res.Resources$NotFoundException: Resource ID #0x7f020001 type #0x3 is not valid
.
奇怪的是,如果我将values.xml
文件复制到本地化文件夹中,则布尔值读取得很好,并且没有运行时异常。IE:
├── values
│ ├── dimens.xml
│ ├── strings.xml
│ └── values.xml
├── values-en
│ ├── strings.xml
│ └── values.xml
├── values-de
│ ├── strings.xml
│ └── values.xml
为什么需要在本地化文件夹中定义此值?默认值文件夹不应该足够吗?
值得注意的是,这似乎只发生在我在特定 FireOS 设备上的应用程序上,并且可能是这些设备上的 FireOS 构建的特定错误。FireOS 构建基于 Android API 级别 23。