ResourcesCompat构造函数的访问权限为私有

3
错误很明显,但Google Android文档表示构造函数是公共的。我在我的应用程序中使用了以下代码:
import android.support.v4.content.res.ResourcesCompat;

final ResourcesCompat resourcesCompat = new ResourcesCompat();
    final int foreground = resourcesCompat.getColor(getResources(), night ? R.color.night_status_bar_text : R.color.status_bar_text, getTheme());
    final int background = resourcesCompat.getColor(getResources(), night ? R.color.night_game_background : R.color.game_background, getTheme());
    statusBar.setTextColor(foreground);

我已经添加了最新的 Android-v4 支持库(support-v4 24.0.0)。但是,Android Studio 显示“ResourcesCompat 构造函数无法访问”,然而 Google 文档显示该构造函数是公共的。

请帮助我解决这个问题。


你能贴出支持库v24的链接吗?我在任何分支中都找不到它。https://android.googlesource.com/platform/frameworks/support.git/+refs - daemmie
我已经从SDK管理器中下载了“support-v4 24.0.0”,并使用Android Studio中的项目结构将其添加为库。 - suren paleru
好的,谢谢。我目前无法检查,但他们可能会使getColorStateListgetColor静态,并将构造函数设置为私有。(如果v24被正式发布,文档将进行更新) - daemmie
查看我的更新 ;) - daemmie
1个回答

1
请使用目前最新的23.2.1版本。(2016年3月)
查看this网站获取更多信息。
我已经测试过这个版本。它运行良好,构造函数实际上是公共的。 更新: 好的,我找到了ResouresCompat v24 正如我所预期的那样,getColorgetColorStateList现在是静态的。因此不需要使用构造函数。
将您的代码更新为:
final int foreground = ResouresCompat.getColor(getResources(), night ? R.color.night_status_bar_text : R.color.status_bar_text, getTheme());
final int background = ResouresCompat.getColor(getResources(), night ? R.color.night_game_background : R.color.game_background, getTheme());

但请记住,这只是预览。

感谢您的即时帮助。我的编译器SDK版本是android-N。如果我在build.grable文件中使用support-v4 23.3.1,会有任何问题吗? - suren paleru
不应该有任何问题。我猜支持v24库是一个alpha/beta版本?我相信他们正在努力解决,但目前我建议使用最新的稳定支持库版本。 - daemmie
感谢您宝贵的帮助。将更改为支持-v4 23.2.1。 - suren paleru

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接