0

This question is to get more clarification. I have seen this question and there is a lot of answers in it, but there are many and all differ slightly.

Yesterday I updated my app and suddenly got a lot of crashes saying:

java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2858)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2933)
   at android.app.ActivityThread.-wrap11(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1612)
   at android.os.Handler.dispatchMessage(Handler.java:105)
   at android.os.Looper.loop(Looper.java:164)
   at android.app.ActivityThread.main(ActivityThread.java:6710)
   at java.lang.reflect.Method.invoke(Method.java)
   at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:770)

In the question mentioned above, people suggested that you should either:

  • change <item name="android:windowIsTranslucent">true</item> to <item name="android:windowIsTranslucent">false</item>
  • change android:screenOrientation="portrait" to setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  • or remove android:screenOrientation="portrait"

In my case I have an Activity and I have set the theme in styles like this:

<style name="Theme.Transparent" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>

</style>

and in my manifest:

<activity android:name=".camView"
        android:clearTaskOnLaunch="true"
        android:configChanges="orientation|screenSize|keyboardHidden"
        android:label="@string/app_name"
        android:screenOrientation="landscape"
        android:theme="@style/Theme.Transparent">.......//some metadata

My question:

Is it safe to say that changing <item name="android:windowIsTranslucent">true</item> to <item name="android:windowIsTranslucent">false</item> and keeping android:screenOrientation="landscape" in my manifest, will resolve this issue?

Why is this happening?


I think it might be worth mentioning that I have added the following in my Activity onCreate, just before setContentView(R.layout.activity_cam_view); (I'm not sure if this will affect anything):

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
    WindowManager.LayoutParams layout = getWindow().getAttributes();
    layout.rotationAnimation = WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE;
        getWindow().setAttributes(layout);
}
halfer
  • 19,824
  • 17
  • 99
  • 186
ClassA
  • 2,480
  • 1
  • 26
  • 57
  • have u check this https://stackoverflow.com/questions/48072438/java-lang-illegalstateexception-only-fullscreen-opaque-activities-can-request-o – AskNilesh Jun 07 '19 at 04:14
  • @NileshRathod Yes, I mentioned it in my question -> `I have seen this question and there is a lot of answers in it, but there is many and all differ slightly` – ClassA Jun 07 '19 at 04:16

0 Answers0