"太多属性引用"警告

ako*_*out 8 android android-layout android-framework

我有一个应用程序,其中一些片段只包含ListViews.我的一些低端设备用户会遇到一种现象,即片段根本无法显示数据.当他们进入片段时,我会显示一个ProgressBar,而这个ProgressBar似乎永远旋转.

所以我买了一台低端设备,面临同样的问题.我通过网络请求获取ListView的数据到我的后端API,但答案永远不会返回.我到目前为止唯一的警告是

W/ResourceType? Too many attribute references, stopped at: 0x01010034
Run Code Online (Sandbox Code Playgroud)

我在网上找不到这个错误,但似乎这个警告记录在这里https://github.com/SciAps/android-frameworks-base/blob/c693209edc3696884c1fcd59790dda0b9811d017/libs/utils/ResourceTypes.cpp#L1573 ,但我不明白Android代码在那里做什么.

任何人都知道这里发生了什么,问题是什么以及我如何解决这个问题?

顺便说一句,我使用RoboSpice和Retrofit来做网络请求.在此警告之后停止负责获取数据的后台服务,这就是我永远不会收回数据的原因.

编辑据我所知,没有看到数据与警告无关.无论如何,这个警告意味着什么,我该如何预防呢?

小智 14

我不小心将一个样式作为主题应用于视图,导致出现此警告.在视图的XML中,通过使用style="@style/MyStyle"而不是android:theme="@style/MyStyle"我能够停止警告.


小智 2

使用 ContextThemeWrapper 创建新的 ElementView 时会发生这种情况

TextView txtView= new TextView(new ContextThemeWrapper(context, R.style.styleName));
Run Code Online (Sandbox Code Playgroud)

  • 所以你重现了这个错误?您能解释一下发生了什么、为什么发生以及如果需要的话如何避免? (4认同)