Android Oreo 8.1设备上应用的主题崩溃

Android Oreo 8.1设备上应用的主题崩溃,android,crash,android-theme,android-8.1-oreo,Android,Crash,Android Theme,Android 8.1 Oreo,当我处理Oreo8.1设备中发生的应用主题崩溃时。这是我的密码,请核对一下 <activity android:name=".Menu_Activity" android:screenOrientation="portrait" android:theme="@style/AppTranslTheme" /> <style name="AppTranslTheme" parent="android:T

当我处理Oreo8.1设备中发生的应用主题崩溃时。这是我的密码,请核对一下

  <activity
            android:name=".Menu_Activity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTranslTheme" />

<style name="AppTranslTheme" parent="android:Theme.Translucent.NoTitleBar">
虽然我删除了android:theme,但应用程序并没有崩溃。但我错过了屏幕的透明度。我也需要它,因为奥利奥不会发生崩溃。请支持我修复它


非常感谢您的回答

如果阅读错误日志和堆栈跟踪,您将发现:

java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
因此,简单的解决方案是:从该活动的清单文件中删除以下行:

android:screenOrientation="portrait"

在android Oreo中,如果样式或父样式有以下行,则不能仅使用XML更改活动的方向:

<item name="android:windowIsTranslucent">true</item>
在java文件中编写如下代码:

    if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
尝试:
    if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
<item name="android:windowIsTranslucent">true</item>