Android 为什么ContextThemeWrapper现在仅限于支持库组?

Android 为什么ContextThemeWrapper现在仅限于支持库组?,android,syntax-error,android-support-library,android-context,android-lint,Android,Syntax Error,Android Support Library,Android Context,Android Lint,我开始使用contexthemewrapper将样式动态应用于ImageButton;基于我的另一个问题,以及其他问题的答案 但是最近,ContextThemeWrapper构造函数上出现了一个lint错误,说明: contexthemewrapper只能从同一个库中调用 组(groupId=com.android.support) 我注意到用@RestrictTo(LIBRARY\u GROUP)注释标记的类导致出现lint错误。但是我找不到任何关于为什么它只限于com.android.sup

我开始使用
contexthemewrapper
将样式动态应用于
ImageButton
;基于我的另一个问题,以及其他问题的答案

但是最近,
ContextThemeWrapper
构造函数上出现了一个lint错误,说明:

contexthemewrapper
只能从同一个库中调用 组(groupId=com.android.support)

我注意到用
@RestrictTo(LIBRARY\u GROUP)
注释标记的类导致出现lint错误。但是我找不到任何关于为什么它只限于
com.android.support
library组的信息

据我所知,这是以编程方式将样式、主题或主题覆盖应用于
视图的唯一方法;除了将默认样式属性设置为构造函数中的第三个参数之外。所以我想知道为什么它的使用会受到限制;在支持库之外使用该类是否存在一些问题?会有我不知道的副作用吗


我唯一遇到的是一个(现已修复)bug;这导致此lint错误显示在
AppCompatActivity
子类的
onCreate
方法上。我不认为这是一个错误,而是一个故意的限制;我想知道背后的原因

我应该注意到;这个限制(到目前为止)实际上似乎对使用
ContextThemeWrapper
的代码没有影响。它的编译和运行都很好,并且可以像我期望的那样工作。

!=
android.support.v7.view.ContextThemeWrapper

支持库1被注释为
@RestrictTo(库组)
,也被注释为
@hide
——它不是一个公共API


第一个是公共的。

我在导入android.support.v7.view.ViewPropertyAnimatorCompatSet中看到了同样的问题,但我找不到替代方案,有什么想法吗?@TheHebrewHammer
android.support.v4.view.ViewPropertyAnimatorCompat
只是将导入从“support.v7.view”更改为“android.view”,有时解决方案比您想象的要简单:)ha haI不得不将其从
android.view.ContextThemeWrapper
更改为
androidx.appcompat.view.ContextThemeWrapper
,以使低API级别上不可用的警告消失。警告was调用需要API级别23(当前最小值为16):“new android.view.ContextThemeWrapper”
ContextThemeWrapper wrapper = new ContextThemeWrapper(getContext(), mStyleRes);
mImageButton = new AppCompatImageButton(wrapper, null, 0);