Logcat说:"资源有未解决的主题属性"

Mar*_*fer 6 resources android warnings drawable logcat

记录我的应用我的Logcat说:警告: ... has unresolved theme attributes! Consider using Resources.getDrawable(int, Theme) or Context.getDrawable(int).

产生警告的代码:

    if (mCards.get(position).isFavorite()) {
        viewHolder.mIbStar
                .setImageDrawable(mContext.getResources()
                                          .getDrawable(R.drawable.btn_is_fav));
    } else {
        viewHolder.mIbStar
                .setImageDrawable(mContext.getResources()
                                          .getDrawable(R.drawable.btn_isnt_fav));
    }
Run Code Online (Sandbox Code Playgroud)

我搜索了这个日志,但没有找到任何有用的东西.怎么知道这个问题?该程序是稳定的,所以没有Nullpointer ..

提前致谢

Rom*_* R. 5

问题是系统找不到关联的主题来解析这些属性值。这就是为什么 logcat 建议您使用提供主题的Resources.getDrawable(int, Theme)方法,或者使用Context.getDrawable(int)方法,其中 Context 将使用其当前主题:

返回与特定资源 ID 关联并为当前主题设置样式的可绘制对象。

此外,根据Android官方文档:http : //developer.android.com/reference/android/content/res/Resources.html#getDrawable(int)

此方法在 API 级别 22 中已弃用。请改用getDrawable(int, Theme)

更具体地说

注意:要获得主题可绘制对象,请使用Context.getDrawable(int)getDrawable(int, Theme)传递所需的主题。

考虑更换

mContext.getResources().getDrawable(int) 
Run Code Online (Sandbox Code Playgroud)

经过

mContext.getDrawable(int)
Run Code Online (Sandbox Code Playgroud)

例如建议它的logcat。