Me estoy enfrentando el problema, mientras que la recuperación de los contactos de la libreta de contactos en Android 8.0 Oreo java.lang.IllegalStateException: Sólo a pantalla completa opaco actividades pueden solicitar orientación

Estoy tratando de conseguir el contacto en mi actividad desde el teléfono de contacto del libro y funciona perfecto para Lollipop, Malvavisco, Turrón, etc pero me da el error de Oreo como este por favor me ayude. Mi código está aquí abajo.

Código De Demostración :-

private void loadContacts() {
contactAsync = new ContactLoaderAsync();
contactAsync.execute();
}
private class ContactLoaderAsync extends AsyncTask<Void, Void, Void> {
private Cursor numCursor;
@Override
protected void onPreExecute() {
super.onPreExecute();
Uri numContacts = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
String[] numProjection = new String[]{ContactsContract.CommonDataKinds.Phone.CONTACT_ID, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.TYPE};
if (android.os.Build.VERSION.SDK_INT < 11) {
numCursor = InviteByContactActivity.this.managedQuery(numContacts, numProjection, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " COLLATE NOCASE ASC");
} else {
CursorLoader cursorLoader = new CursorLoader(InviteByContactActivity.this, numContacts, numProjection, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " COLLATE NOCASE ASC");
numCursor = cursorLoader.loadInBackground();
}
}
@Override
protected Void doInBackground(Void... params) {
if (numCursor.moveToFirst()) {
try {
final int contactIdIndex = numCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID);
final int displayNameIndex = numCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
final int numberIndex = numCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
final int typeIndex = numCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE);
String displayName, number, type;
do {
displayName = numCursor.getString(displayNameIndex);
number = numCursor.getString(numberIndex);
type = getContactTypeString(numCursor.getString(typeIndex), true);
final ContactModel contact = new ContactModel(displayName, type, number);
phoneNumber = number.replaceAll(" ", "").replaceAll("\\(", "").replaceAll("\\)", "").replaceAll("-", "");
if (phoneNumber != null || displayName != null) {
contacts.add(phoneNumber);
contactsName.add(displayName);
contactsChecked.add(false);
filterdNames.add(phoneNumber);
filterdContactNames.add(displayName);
filterdCheckedNames.add(false);
}
} while (numCursor.moveToNext());
} finally {
numCursor.close();
}
}
Collections.sort(contacts, new Comparator<String>() {
@Override
public int compare(String lhs, String rhs) {
return lhs.compareToIgnoreCase(rhs);
}
});
InviteByContactActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
mContactAdapter.notifyDataSetChanged();
}
});
return null;
}
}
private String getContactTypeString(String typeNum, boolean isPhone) {
String type = PHONE_TYPES.get(typeNum);
if (type == null)
return "other";
return type;
}
static HashMap<String, String> PHONE_TYPES = new HashMap<String, String>();
static {
PHONE_TYPES.put(ContactsContract.CommonDataKinds.Phone.TYPE_HOME + "", "home");
PHONE_TYPES.put(ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE + "", "mobile");
PHONE_TYPES.put(ContactsContract.CommonDataKinds.Phone.TYPE_WORK + "", "work");
}
}

Registro De Errores:-

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example, PID: 6573
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/com.example.Activity.InviteByContactActivity}: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation

31 Comentarios

  1. 35

    El problema parece estar sucediendo cuando su destino sdk es de 28. Así que después de probar muchas opciones, finalmente, esta trabajado.

    <activity
    android:name=".activities.FilterActivity"
    android:theme="@style/Transparent"
    android:windowSoftInputMode="stateHidden|adjustResize" />

    estilo:-

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

    Nota:padre=»el Tema.AppCompat.La luz.NoActionBar» es necesario para la api de 28. Anteriormente había algo más en la api 26. Fue un gran trabajo, pero empezó a dar problema a los 28 años.
    Espero que ayude a alguien aquí.
    EDIT: Para algunos sólo mediante el establecimiento de <item name="android:windowIsTranslucent">false</item> and <item name="android:windowIsFloating">false</item>
    trabajó.Puede ser, depende de la forma de implementar la solución funciona.En mi caso funcionó por establecer a true.

    • Para cualquier otra persona que se topa con este «fix» tuve que establecer <item name="android:windowIsTranslucent">false</item> y también había que establecer <item name="android:windowIsFloating">false</item> antes de que funcionaría.
    • ¿Dónde está la solución? No hay screenOrientation atributo en el activity de la etiqueta, y la única cosa que hace que el bloqueo es screenOrientation se establece mientras android:windowIsTranslucent se establece en true.
    • Esto no funciona, a menos que los comentarios de arriba es usada. Véase la respuesta por Radesh, que cubre los comentarios de arriba, y más, y es claro
    • Configuración de translúcido a false el trabajo para mí, <item name=»android:windowIsTranslucent»>false</item>
  2. 85

    En android Oreo (API 26) no se puede cambiar la orientación de la Actividad que tienen debajo de la línea en el estilo de

     <item name="android:windowIsTranslucent">true</item>

    Tiene dos vías para la solución de este :

    1) puede eliminar por encima de la línea (o gire para falso) y su aplicación funciona bien.

    2) O primero puede quitar debajo de la línea de manifiesto para que la actividad

    android:screenOrientation="portrait"

    Entonces usted debe agregar esta línea al archivo java

        //android O fix bug orientation
    if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
    • en Android PASTEL de esto funciona como se esperaba. Así que la comprobación que realmente debe ser: android.os.Build.VERSION.SDK_INT != Build.VERSION_CODES.O
    • la segunda forma de trabajo a la perfección!
    • podría usted por favor, comparta completo de código de condición
    • Esto debe ser aceptado respuesta
  3. 80

    En Android O y más tarde este error sucede cuando se establece

     android:screenOrientation="portrait"

    en el Manifiesto.

    Quitar esa línea y el uso de

     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    en su actividad.

    Esto solucione tu problema.

    • Alguna idea de por qué? Quiero restringir mi aplicación para seguir en el paisaje.
    • Es un bug de google lado. Debe ser solucionado en futuras actualizaciones. setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); va a restringir su aplicación a partir de entrar en el paisaje. Asegúrese de usar esto en crear de todas sus actividades.
    • Eliminar <item name="android:windowIsTranslucent">true</item> de mi estilo que hereda de Theme.AppCompat.Light.NoActionBar trabajó para mí.
    • Entonces el problema se convierte en: Only fullscreen activities can request orientation. Sin embargo, yo he puesto el tema de la actividad a @android:style/Theme.Translucent.NoTitleBar.Fullscreen
    • Esta solución funciona, pero se mete a mi splashScreenTheme. Vergüenza en Google frecuente descuidado roll-outs…
    • no se ve como esto es un error, pero la intención de : github.com/aosp-mirror/platform_frameworks_base/commit/…
    • «La intención de» romper las aplicaciones que funcionaban en versiones anteriores? Esa meta ha sido alcanzada definitivamente. Al menos tenemos una solución, gracias a @Ragesh
    • Me llevó mucho tiempo darme cuenta de esto. Me alegro de su de ayuda a otros desarrolladores
    • Muchas gracias de nuevo a @Ragesh. Tengo un número de informes de accidentes de 8.0 en el juego de la consola y que nunca la figura de él sin su respuesta. Me gustaría poder darle a él más que a +1 🙂
    • Gracias 🙂 me erróneamente que android:screenOrientation="portrait" en mi FacebookActivity de la etiqueta, después de la eliminación, lo tengo resuelto
    • Sustituir el atributo manifest por la configuración de la orientación de la Actividad de la clase no se soluciona el problema.
    • está usted usando anuncios intersticiales?
    • No @RageshRamesh, tengo una regular y simple translúcido de la actividad. Y se estrella en Android 8.0 (fijo en 8.1), ya sea por la configuración de la orientación en el manifiesto o en la Actividad del método onCreate
    • No es trabajo para mí
    • alguien encuentra la solución
    • Estoy recibiendo este error con ‘com.google.firebase:firebase-anuncios de:15.0.1’ gradle de configuración. Estoy actualizando a 16.0.1 . Espero que se corrija el error. Por cierto, sucede un error de sólo Android 8. También firebase accidente le da la siguiente línea en el informe de accidente: ‘na.onTransact(:[email protected]@13.2.80 (040408-211705629):10)’
    • Me sale este error cuando intento configurar la orientación de la programación java.lang.IllegalStateException: Sólo a pantalla completa de las actividades puede solicitar orientación

  4. 71

    Google lanza esta excepción en la Actividad del onCreate método después de la v27, su significado es : si una Actividad es translúcido o flotante, su orientación debe ser invocado de los padres(de fondo) de la Actividad, no puede tomar la decisión en sí misma.

    Incluso si se quita android:screenOrientation="portrait" de la flotación o translúcido Actividad pero el fix de la orientación de sus padres(de fondo) de la Actividad, todavía es fijado por el padre, lo he probado ya.

    Una situación especial : si usted hace translúcido en un lanzador Actividad, ha no de los padres(de fondo), por lo que siempre giran con el dispositivo. Quieres arreglarlo, usted tiene que tomar otro camino para reemplazar <item name="android:windowIsTranslucent">true</item> estilo.

    • Yo no tengo este problema en mi OnePlus con Android PASTEL. Así que no, no después de v27, pero cuando v!=28
    • ¿De casualidad tienes un enlace a la documentación de este ? Me parece que no puede encontrar.
    • translúcido problema está realmente loco, gracias ,soluciona mi problema
    • Gracias por notar que la última sección, » Una situación especial…’
    • Esto debe ser aceptado respuesta. Tiene perfecto sentido!
  5. 27

    Si utiliza una pantalla completa transparente de la actividad, no es necesario especificar la orientación de bloqueo en la actividad. Tomará los valores de configuración de la actividad de los padres. Así que si la actividad de los padres tiene en el manifiesto:

    android:screenOrientation=»retrato»

    su translúcido actividad tendrá el mismo bloqueo de orientación: retrato.

    • Creo que hizo una pequeña errata: debe ser «si utiliza una pantalla completa translúcido la actividad se tendrá la opción de configuración de su actividad principal» ^^
    • ¿Qué pasa si mi transparente de la actividad es de mi lanzador de actividad(es decir, la pantalla de presentación)
    • Esto es cierto para todas las versiones de android? O es solo Android O y hacia arriba?
    • Esto no funcionará si esta es la única Actividad que está siendo utilizado, aunque (ejemplo: a partir de un Servicio)
  6. 20

    He utilizado android:screenOrientation="behind" en lugar de android:screenOrientation="portrait". Básicamente, se crea un cuadro de diálogo (en una actividad) y el diálogo no puede solicitar orientación por sí mismo las necesidades de actividad de los padres para hacer esto (porque un padre es visible en el fondo y tiene un diseño propio).

    «detrás» de La misma orientación que la actividad que está inmediatamente debajo de ella en la actividad de la pila.

    • Lo que si quiero que la Actividad que he creado para que sea transparente, que muestra lo que está debajo de ella (incluyendo otras aplicaciones), mientras que también se alojan en la orientación actual? Si me dejó permanecer «detrás de», puede cambiar la orientación de varios casos…
    • trabajó para mí. debe ser la respuesta correcta
  7. 18

    La única solución que realmente funciona :

    Cambio:

    <item name="android:windowIsTranslucent">true</item>

    a:

    <item name="android:windowIsTranslucent">false</item>

    en styles.xml

    Pero esto puede inducir a un problema con su splashscreen (pantalla en blanco al inicio)… En este caso, agregue la línea siguiente a su styles.xml:

     <item name="android:windowDisablePreview">true</item> 

    justo debajo de la windowIsTranslucent línea.

    Última oportunidad si los consejos anteriores no funcionan : target SDK 26 en lugar de o 27.

    • Cambiar el destino de SDK a 26 en lugar de 27 trabajó para mí. El cambio de windowIsTranslucent no.
    • ACTUALIZACIÓN: el uso de targetSDK a 28 no está funcionando 🙂
    • Esto funcionó para mí el uso de targetSDK: 27. Es especialmente importante, ya que tuve un splashscreen configurado.
  8. 12

    Muchas personas han dado una solución, así que voy a hablar sobre el origen del problema.

    De acuerdo a la excepción de registro:

    Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
    at android.app.Activity.onCreate(Activity.java:1081)
    at android.support.v4.app.SupportActivity.onCreate(SupportActivity.java:66)
    at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:297)
    at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:84)
    at com.nut.blehunter.ui.DialogContainerActivity.onCreate(DialogContainerActivity.java:43)
    at android.app.Activity.performCreate(Activity.java:7372)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3147)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3302) 
    at android.app.ActivityThread.-wrap12(Unknown Source:0) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1891) 
    at android.os.Handler.dispatchMessage(Handler.java:108) 
    at android.os.Looper.loop(Looper.java:166)

    El código que activa la excepción en Activity.java

        //Need to pay attention mActivityInfo.isFixedOrientation() and ActivityInfo.isTranslucentOrFloating(ta)
    if (getApplicationInfo().targetSdkVersion >= O_MR1 && mActivityInfo.isFixedOrientation()) {
    final TypedArray ta = obtainStyledAttributes(com.android.internal.R.styleable.Window);
    final boolean isTranslucentOrFloating = ActivityInfo.isTranslucentOrFloating(ta);
    ta.recycle();
    //Exception occurred
    if (isTranslucentOrFloating) {
    throw new IllegalStateException(
    "Only fullscreen opaque activities can request orientation");
    }
    }

    mActivityInfo.isFixedOrientation():

            /**
    * Returns true if the activity's orientation is fixed.
    * @hide
    */
    public boolean isFixedOrientation() {
    return isFixedOrientationLandscape() || isFixedOrientationPortrait()
    || screenOrientation == SCREEN_ORIENTATION_LOCKED;
    }
    /**
    * Returns true if the activity's orientation is fixed to portrait.
    * @hide
    */
    boolean isFixedOrientationPortrait() {
    return isFixedOrientationPortrait(screenOrientation);
    }
    /**
    * Returns true if the activity's orientation is fixed to portrait.
    * @hide
    */
    public static boolean isFixedOrientationPortrait(@ScreenOrientation int orientation) {
    return orientation == SCREEN_ORIENTATION_PORTRAIT
    || orientation == SCREEN_ORIENTATION_SENSOR_PORTRAIT
    || orientation == SCREEN_ORIENTATION_REVERSE_PORTRAIT
    || orientation == SCREEN_ORIENTATION_USER_PORTRAIT;
    }
    /**
    * Determines whether the {@link Activity} is considered translucent or floating.
    * @hide
    */
    public static boolean isTranslucentOrFloating(TypedArray attributes) {
    final boolean isTranslucent = attributes.getBoolean(com.android.internal.R.styleable.Window_windowIsTranslucent, false);
    final boolean isSwipeToDismiss = !attributes.hasValue(com.android.internal.R.styleable.Window_windowIsTranslucent)
    && attributes.getBoolean(com.android.internal.R.styleable.Window_windowSwipeToDismiss, false);
    final boolean isFloating = attributes.getBoolean(com.android.internal.R.styleable.Window_windowIsFloating, false);
    return isFloating || isTranslucent || isSwipeToDismiss;
    }

    De acuerdo con el código anterior análisis, cuando TargetSdkVersion>=27, cuando el uso de SCREEN_ORIENTATION_LANDSCAPE, SCREEN_ORIENTATION_PORTRAIT, y otros atributos relacionados con el uso de windowIsTranslucent, windowIsFloating, y windowSwipeToDismiss atributos de tema, se activará una excepción.

    Después de que el problema se encuentra, usted puede cambiar el TargetSdkVersion o quitar los atributos relacionados con el tema de acuerdo a sus necesidades.

    • Comprobar el código en maestro en este momento, ya retirado de marco: espejo/platform_frameworks_base/commit/e83f34cde79c51efb66f31f2770c2e8e572e96db#diff-a9aa0352703240c8ae70f1c83add4bc8 Es interesante ver el mensaje de confirmación.
    • Por favor, puedes mostrar un enlace a la fuente de código de esta parte? Hay alguna solución que me permitirá tener una Actividad con una orientación específica Y tiene un fondo transparente, por lo que será posible ver lo que está detrás de ella (incluyendo otras aplicaciones) ?
  9. 8

    Yo no puedo estar de acuerdo con la mayoría de los clasificados respuesta, porque

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    produce un error

    java.lang.IllegalStateException: Sólo a pantalla completa opaco actividades
    solicitud de orientación

    pero esto hace que a mí me funciona

    <style name="TranslucentTheme" parent="@style/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>
    </style>

    y utilizarlo para su Actividad, cuando se extiende desde

    InterstitialActivity extends AppCompatActivity

    en AndroidManifest.xml

        <activity
    android:name=".InterstitialActivity"
    ...
    android:screenOrientation="portrait"
    android:theme="@style/TranslucentTheme" />
    • <item name=»android:windowIsTranslucent»>false</item> <item name=»android:windowFullscreen»>true</item> => este fijo que es para mí, en android 8.0. Todavía podía dejar screenOrientation en el manifiesto.
    • Esto no funciona de la misma como windowIsTranslucent , porque ahora usted no puede ver lo que está detrás de la Actividad.
  10. 7

    Acaba de quitar esta línea android:screenOrientation="portrait" de la actividad en Manifiest.xml

    Que actividad se va a obtener la orientación de su actividad anterior así que no hay necesidad de aplicar la orientación que ha <item name="android:windowIsTranslucent">true</item>.

    • ¿Qué pasa si en la actividad anterior tiene una orientación distinta a la de lo que usted desea en la actividad actual?
  11. 6

    Si usted tiene que utilizar setRequestedOrientation(), no hay manera, pero el sacrificio de la windowIsTranslucent atributo en Android 8.0

    values\styles.xml para la api de nivel de 25- (<8.0)

    <style name="Base.Theme.DesignDemo" parent="Base.Theme.AppCompat.Light">
    ...
    <item name="android:windowIsTranslucent">true</item>
    ...
    </style>

    values-v26\styles.xml para la api de nivel 26 (=8.0)

    <style name="Base.Theme.DesignDemo" parent="Base.Theme.AppCompat.Light">
    ...
    <!-- android 8.0(api26),Only fullscreen opaque activities can request orientation -->
    <item name="android:windowIsTranslucent">false</item>
    ...
    </style>

    values-v27\styles.xml para la api de nivel 27+ (>8.0)

    <style name="Base.Theme.DesignDemo" parent="Base.Theme.AppCompat.Light">
    ...
    <item name="android:windowIsTranslucent">true</item>
    ...
    </style>
  12. 5

    parece cuando target sdk es circular (a nivel de api 28.0) y windowIsTranslucent es cierto

    <item name="android:windowIsTranslucent">true</item>

    e intenta obtener acceso a la orientación. el problema viene con android oreo 8.0 (api de nivel 26) hay dos maneras de resolver este

    1. quitar la orientación
    2. o conjunto de windowIsTranslucent a false

    si son valores de orientación en el manifiesto como este

    android:screenOrientation="portrait"

    o
    en clase de actividad como esta

     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    quite de ambos lugares.

    y observó cuando u conjunto windowIsTranslucent a la verdad, se necesita la orientación de la actividad de los padres.

  13. 4

    en el archivo de manifiesto conjunto de segunda actividad parentActivityName como primera actividad y quitar el screenOrientation parámetro para la segunda actividad. esto significa que su primera actividad es la de los padres y de decidir la orientación de su segunda actividad.

    <activity
    android:name=".view.FirstActiviy"
    android:screenOrientation="portrait"
    android:theme="@style/AppTheme" />
    <activity
    android:name=".view.SecondActivity"
    android:parentActivityName=".view.FirstActiviy"
    android:theme="@style/AppTheme.Transparent" />
  14. 3

    Tuve el mismo problema y mi solución fue eliminar la línea

    android:screenOrientation="portrait"

    y, a continuación, añadir esto en la actividad:

    if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }
    • Por favor, utilizar el inglés en el Desbordamiento de Pila. Gracias!
  15. 3

    Sólo Ajustar la Orientación de la actividad en Manifiest.xml

    android:screenOrientation="unspecified"
  16. 3

    Se trata de un conflicto (error) entre los Temas dentro de style.xml archivo en versiones de android 7 (Api niveles 24,25) & 8 (api niveles 26,27),
    cuando usted tiene

    android:screenOrientation="portrait"
    :dentro de la actividad específica (se bloquea) en AndroidManifest.xml

    &

    <item name="android:windowIsTranslucent">true</item> 

    en el tema que se aplica a la actividad dentro de la style.xml

    Se puede resolver por estas formas de acuerdo a su necesidad :

    1 – Quitar de las mencionadas propiedades que hacen que el conflicto

    2 – Cambiar de Actividad, orientación a uno de estos valores, ya que necesita : unspecified o behind y la manera en que se puede encontrar aquí : Google referencia para android:screenOrientation
    `

    3 – Establecer la orientación mediante programación en tiempo de ejecución

    • Probado esta solución, pero la aplicación todavía se bloquea: necesito retrato transparente de la actividad, así que necesito tanto de estas opciones. Trató de establecer en el manifiesto de screenOrientation no especificado, pero no hubo suerte.
    • ¿Se trató de establecer la orientación de la programación?
    • No. He intentado quitar la orientación en la que se manifiesta a todos, y hacer que la actividad de la pantalla completa, pero todavía se bloquea. Sólo en 1 dispositivo de honor 9 lite. En el Samsung funciona ok.
    • Ajuste de la orientación de la programación también las causas del accidente. ¿Cómo utilizar exactamente?
    • ¿cómo puedo acceder a su código fuente?! Tengo que ver lo que hizo
    • La configuración programmaticaly es como tal, por ejemplo: ` setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);`
    • ¿cuál es tu actividad código de la etiqueta en un manifiesto, la versión de android que se enfrentan a este error & logcat error?
    • He aquí un ejemplo de código: issuetracker.google.com/issues/131534974 . Sería más fácil de explicar en un restringido sección de comentarios.

  17. 2

    Después de hacer algunas investigaciones, parece que este problema puede ser debido a un error de google. Para mí, yo era capaz de salir de esta línea en mis Actividades en el método onCreate:

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    Y he cambiado mi targetSdkVersion a 26. Teniendo eso en mi onCreate siendo resultado de un accidente mientras mi targetSdkVersion estaba todavía a 27. Ya que nadie más la solución que me ha funcionado hasta ahora, he encontrado que esto funciona como una solución temporal para ahora.

    • Este trabajó para mí estableciendo targetSdkVersion a 26 de android:screenOrientation=»retrato» y <item name=»android:windowIsTranslucent»>true</item>
    • para mí también
    • Pero, finalmente, tendrá que establecer la targetSdkVersion al 28 de este año : support.google.com/googleplay/android-developer/answer/… . ¿Qué vas a hacer?
  18. 2

    Me enfrenté a este problema sólo en el SDK de 26 (8.0.0) si se utiliza windowIsTranslucent ‘true’ y con fuerza la configuración de orientación:

    Aquí está la solución:

        @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);   
    //fixing portrait mode problem for SDK 26 if using windowIsTranslucent = true
    if (Build.VERSION.SDK_INT == 26) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
    } else {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    }        
    }
    <style name="SplashActivty" parent="AppTheme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    </style>
    <!-- Splash screen -->
    <activity
    android:name="edu.aku.family_hifazat.activities.SplashActivity"
    android:label="@string/app_name"
    android:screenOrientation="unspecified"
    android:theme="@style/SplashActivty">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>
    • Pero entonces se pierde la funcionalidad de tener la orientación establecida a lo que quería.
  19. 2

    Estaba recibiendo este error cuando intento capturar la imagen o la imagen de la galería lo que funciona para mí es quitar tanto

     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    y

    android:screenOrientation="portrait"

    ahora mi actividad está utilizando este tema:

      <style name="Transparent" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
    <item name="android:windowAnimationStyle">@android:style/Animation</item>
    <item name="android:windowIsTranslucent">false</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
    </style>
    • Esto no funciona, como windowIsFloating hace que el mismo accidente como windowIsTranslucent .
  20. 2

    sólo 8.0.0 lanzar la excepción, por encima de 8.0 se ha de quitar la excepción

    java.lang.IllegalStateException: Sólo a pantalla completa opaco actividades pueden solicitar orientación

    • Android 7, 7.1 , 8.0 , 8.1, todos tienen este problema
    • appInfo.targetSdkVersion > O lanzar la excepción
    • Su comprobación de la target versión del sdk. No importa qué versión del sdk de que el dispositivo está funcionando realmente, estás compilando en contra de Android O (28), pero no siguiendo las convenciones de esa versión de la plataforma.
  21. 2

    Lo único que trabajó para mí estaba cambiando

    android:screenOrientation="portrait"

    a

    android:screenOrientation="unspecified"

    en el manifiesto para todos los translúcido actividades.

    De esa manera es compatible con todas las versiones de API desde la translúcido actividad que parece heredar su orientación de la actividad de los padres como de targetApi: 28.

    El estilo se puede dejar como está incluyendo <item name="android:windowIsTranslucent">true</item>.

    • Probado esta solución, pero todavía se bloquea la aplicación
    • Pero entonces se pierde la función de ajuste de la orientación
    • La manera en que yo entiendo la orientación será heredada de la actividad de los padres. Si desea establecer explícitamente otra orientación en la translúcido actividad que no funciona de esta manera…
    • A veces, usted no puede tener el control de la Actividad anterior. A veces usted quiere mostrar su transparente en la parte superior de lo que el usuario ve. Así que esto no puede ayudar 🙁
  22. 1

    No sé si esto es un bug de Google o de una intención de comportamiento, pero yo (al menos momentáneamente) resuelto por el cambio de compileSdkVersion y targetSdkVersion de vuelta a 26 en Gradle…

    • Usted no debe bajar la targetsdk nivel. Su aplicación va a ser bloqueados desde la play store con el tiempo. Siempre el objetivo más reciente de Android a nivel de Api android-developers.googleblog.com/2017/12/…
    • mal. Puede orientar 26 y estará disponible en la 28 en la tienda.
    • Correcto, yo escribí ‘finalmente’ si usted construye su aplicación orientados a un mayor nivel de api que estará en un mundo de dolor cuando son forzados a actualizar
    • Esto no es una solución, pero una solución. Un día que tenga que migrar tu aplicación a 28 y de ahí!
  23. 1

    Si usted no ha resuelto su problema de registro de la actividad publicitaria en el manifiesto como este:

    <activity
    android:name="com.google.android.gms.ads.AdActivity"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
    tools:replace="android:theme"
    />

    También es necesario actualizar a la última versión del sdk.

  24. 1

    Probablemente, que muestra la Actividad del Diálogo(no en pantalla completa), por lo que eliminar screenOrientation de Manifiesto o de código. Esto solucione el problema.

    • No, no me funciona ya lo he probado.
    • Hmm muy extraño, para mí ese fue el caso. Intente ejecutar la aplicación en diferentes versiones de Android, a ver qué va a ser el resultado, esto puede ayudar a usted…
  25. 1

    esto sucedió después de 27,uso targetSdkVersion 26 de reemplazar, esperar a que google se fija

    • Por favor, proporcione cualquier referencia (link o citado) cuando la publicación de una respuesta. Así que los futuros usuarios puedan entender fácilmente. También, bienvenido a la PARA la Comunidad.
    • Aquí: issuetracker.google.com/issues/68454482#comment4 «Nuestro equipo de ingeniería ha solucionado este problema. Estará disponible en una futura versión de Android, así que por favor, mantener un ojo en las notas de lanzamiento.»
  26. 0

    He quitado las etiquetas «retrato» de la no completa los elementos de la pantalla, y todo salió bien.

    android:screenOrientation="portrait"
  27. 0

    Uso

    android:screenOrientation="behind"

    Y El Tema

    <style name="translucent" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">#beaaaaaa</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowAnimationStyle">@android:style/Animation</item>
    <item name="android:typeface">normal</item>
    <item name="android:windowSoftInputMode">adjustPan</item>
    <item name="windowActionBar">false</item>
    </style>
  28. -1

    Si la actividad creada por usted mismo, usted puede intentar esto en la Actividad:

    @Override
    public void setRequestedOrientation(int requestedOrientation) {
    try {
    super.setRequestedOrientation(requestedOrientation);
    } catch (IllegalStateException e) {
    //Only fullscreen activities can request orientation
    e.printStackTrace();
    }
    }

    Esta debe ser la solución más fácil.

  29. -2

    Tratar de eliminar las líneas de su tema:

    <item name="android:windowIsTranslucent">true</item>

    y

    <item name="android:windowIsFloating">true</item>

    después de esto, añadir android:screenOrientation="portrait" en su actividad.

Dejar respuesta

Please enter your comment!
Please enter your name here