我正在尝试将 Android Studio 3.0 项目迁移到 Android Studio 3.1.1,它启用了 Android gradle 插件 3.1.1 和新的 AAPT2 资源处理器。我认为我的问题源于其中任何一个。
基本上,当我尝试同步我的项目时,我得到的错误是
用户/用户/src/app/app-1/src/main/res/values/styles.xml:599:5-608:13:AAPT:错误::item>。
我不知道仅基于此错误消息的错误可能是什么。谷歌搜索它似乎也没有找到任何东西。此错误消息指向的行没有什么特别之处,只是一个样式声明:
<style name=“AppEditText" parent="BigEditText">
<item name="android:gravity">left</item>
<item name="android:textCursorDrawable">@drawable/drawable</item>
<item name="android:background">@android:color/transparent</item>
…
</style>
基于错误位置并知道 AAPT2 现在已打开(之前已关闭),我得出的结论是该错误与资源有关,但我不知道出了什么问题。
我的项目由两个应用程序和一个公共模块组成,这两个应用程序都依赖于这些应用程序。commons 模块也实现了一些 UI 组件。不确定这是否相关。
我将如何进一步调试?
更新:当我查看values.xml
由 AAPT2 处理的 merge 时,我可以看到结果values.xml
包含一些奇怪的东西。
<ns3:item name="layout_columnWeight">1</ns3:item>
<ns3:item name="layout_rowWeight">1</ns3:item>
看起来错误来自这些行。但他们怎么会在那里结束呢?谁会添加ns3命名空间,为什么?