在我的应用程序中,我在XML文件中有这组样式:
<style name="size0font">
<item name="font_size">20sp</item>
</style>
<style name="size1font">
<item name="font_size">28sp</item>
</style>
我使用它们来改变应用程序范围内的字体大小
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<item name="android:textSize">?attr/font_size</item>
</style>
getTheme().applyStyle(R.style.size1font, false);
onCreate
它就像一个魅力。但我有一个非常奇怪的错误:如果我重命名字体样式以匹配样式命名约定,例如Size0Font
和Size1Font
...应用崩溃了。我在NullPointerException
中调用getActionBar
方法的某处onCreate
。它显然来自样式名称的第一个大写。
可以在那里找到完整的堆栈跟踪:https://pastebin.com/wZYKBYhQ
CustomActionBarActivity.java:271
是this.actionBar = getActionBar();
。
我在Nougat Nexus 5X上测试了这个。关于这里发生了什么的任何线索?