【发布时间】:2018-09-01 10:54:01
【问题描述】:
我已经搜索了很多,但没有找到以下答案/解决方案:
在 Android Studio 中,我有一个可以正常运行多年的项目。在 'build.grandle' 文件中将 compileSdkVersion 更新为 '28',将 buildToolsVersion 更新为 '28.0.2' 和 targetSdkVersion 更新为 '28' 后,由于以下原因无法成为干净的构建:
错误:字符串中未转义的撇号 消息{kind=ERROR, text=error: 字符串中未转义的撇号,sources=[/home/.../app/src/main/res/values/arrays.xml:77:5-89:20],原始消息=, 工具名称=Optional.of(AAPT)}
错误:无法解析数组项。 消息{kind=ERROR, text=error: could not parse array item., sources=[/home/.../app/src/main/res/values/arrays.xml:77:5-89:20], original message=, tool name=Optional.of(AAPT)}
处理撇号问题的网络上有很多类似的问题,但就我而言,'arrays.xml:77:5-89:20' 中没有撇号:
...
77 <string-array name="textFontSizeValues">
78 <item>0</item>
79 <item>1</item>
80 <item>2</item>
81 <item>3</item>
82 <item>4</item>
83 <item>5</item>
84 <item>6</item>
85 <item>7</item>
86 <item>8</item>
87 <item>9</item>
88 <item>10</item>
89 </string-array>
...
编辑: 也只有
...
<string-array name="textFontSizeValues">
</string-array>
...
给出相同的错误,这对我来说没有意义,因为没有“撇号”
【问题讨论】:
-
您是否有机会从某处复制粘贴此代码?在 AS 编辑器中通常看不到 unicode/linebreak 字符。
-
我不知道。我也尝试从同一个文件中复制上面的工作字符串数组,这没有问题..但这没有帮助......
-
制作
values.xml的备份副本,或确保您的当前版本受版本控制。从textFontSizeValues数组中删除所有<item>元素。然后尝试构建 APK 并查看编译错误是否消失。如果确实如此,那么这些<item>元素确实有些可疑,并且重新键入它们可能是最简单的。如果编译错误仍然存在,请恢复备份的values.xml...我不确定从那里去哪里(超出标准的“构建 > 清洁项目”建议)。 -
除此之外......为什么你需要一个字符串数组,如果它包含整数?
-
在哪里可以找到“values.xml”文件?我还没有找到它...我从
textFontSizeValues数组中删除了所有<item>元素,并尝试了一个新的“Build > Clean Project”,由于同样的错误仍然没有成功编译(这次只有行号信息不同):(