我有一个奇怪的问题,我没有更改 MainActivity 的代码,但仍然出现运行时异常:
您需要将 Theme.AppCompat 主题(或后代(与此一起使用 活动。
我的主活动创建:
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.AppTheme);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
instance = this;
instance.setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
initializeSystem();
initializeUI();
test();
}
我使用的样式:
<style name="AppTheme" speParent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorAccent">@color/dialog_progress_foreground</item>
<item name="android:popupMenuStyle">@style/menuStyle</item>
</style>
<style name="AppTheme.Splashscreen" speParent="AppTheme">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowBackground">@drawable/splashscreen_drawable</item>
</style>
现在,奇怪的部分。我使用的是版本控制系统,所以我在这之前尝试了提交。它可以工作并且不会崩溃。 该提交在 MainActivity 的测试函数中显示了一些对话框。它们在最后一次提交中被注释掉了。 当我将其返回到代码(显示对话框(时,代码仍然崩溃。
当然,我更改了一些其他类,但是如果没有手动激活,它们就不会在 MainActivity 中使用,所以不应该是这样。
我真的很茫然。我想我可以回滚我的提交,但我非常不喜欢不了解发生了什么。
既然我使用了正确的样式,它应该可以工作吗?
看起来你在样式标签上为父属性做了一个拼写错误
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
...
</style>
和
<style name="AppTheme.Splashscreen" parent="AppTheme">
...
</style>