我有一个应用程序,其中一些片段只包含ListViews。我的一些低端设备用户会遇到一种现象,即片段根本无法显示数据。当他们进入片段时,我会显示一个ProgressBar,这个ProgressBar似乎永远旋转。
所以我买了一台低端设备,面临同样的问题。我通过网络请求获取ListView的数据到我的后端API,但答案永远不会返回。我到目前为止看到的唯一警告是
W/ResourceType﹕ Too many attribute references, stopped at: 0x01010034
我在网上找不到这个错误,但似乎这个警告记录在这里https://github.com/SciAps/android-frameworks-base/blob/c693209edc3696884c1fcd59790dda0b9811d017/libs/utils/ResourceTypes.cpp#L1573,但我不明白Android代码在那里做了什么。
任何人都知道这里发生了什么,问题是什么以及如何解决这个问题?
BTW 我使用RoboSpice和Retrofit来处理网络请求。在发出此警告后,将停止负责获取数据的后台服务,这就是我永远无法获取数据的原因。
编辑据我所知,没有看到数据与警告无关。无论如何,这个警告意味着什么,我该如何预防呢?
答案 0 :(得分:13)
我不小心将一个样式作为主题应用于视图,导致出现此警告。在视图的XML中,使用style="@style/MyStyle"
代替android:theme="@style/MyStyle"
我能够停止警告。
答案 1 :(得分:2)
使用ContextThemeWrapper创建新的ElementViews时会发生这种情况
TextView txtView= new TextView(new ContextThemeWrapper(context, R.style.styleName));
答案 2 :(得分:2)
实际上,在我看来,@ Corclark最不赞成的答案并不完全准确。我得到了同样的警告,但是没有在任何地方设置style="@style/MyStyle"
。我做了一些试验,发现实际上是这一行对我造成了警告:
android:theme="@style/My.Switch"
然后,我发现了this answer。将My.Switch
的样式更改为
<style name="My.Switch" parent="">
<item name="android:background">@color/dark_grey</item>
<item name="colorAccent">@color/Unpluq</item>
</style>
为我解决了警告。希望它对某些人仍然有帮助。