74 votes

Dans AndroidManifest : Expecting Android:screenOrientation="unspecified" (attendu)

Android Studio 3.6.

Je veux que mon application soit toujours en portrait mode. Ainsi, dans mon AndroidMainfest.xml :

<activity
   android:name=".activity.SplashActivity"
   android:screenOrientation="portrait">
   <intent-filter>
      <action android:name="android.intent.action.MAIN" />

      <category android:name="android.intent.category.LAUNCHER" />
   </intent-filter>
</activity>

Je lance l'application et SplashActivity spectacles en portrait mode. C'est bien. Mais l'éditeur affiche l'erreur suivante :

Expecting android:screenOrientation="unspecified"

Pourquoi ?

121voto

Darragh MacKenna Points 1259

Dans votre balise manifest (juste sous xmlns:android="http://schemas.android.com/apk/res/android" ), mettez

xmlns:tools="http://schemas.android.com/tools"

Ensuite, à l'intérieur de la balise d'application, mettez

tools:ignore="LockedOrientationActivity"

9 votes

Ou si vous avez déjà tools:ignore dans le tag de l'application, définissez-le comme tools:ignore="GoogleAppIndexingWarning,LockedOrientationActivity".

25voto

Cela n'affecte qu'Android Studio 3.6+

Quel est le problème ici ? Ce problème se produit parce que le cadre Android veut que l'utilisateur contrôle lui-même l'orientation de l'application ; il n'est pas conseillé de restreindre l'orientation de votre application ; par exemple, si un utilisateur veut utiliser l'application en orientation paysage, il n'a qu'à retourner l'appareil et les capteurs feront le travail, mais lorsqu'un développeur restreint l'orientation de l'écran, même si le capteur de rotation fonctionne, l'application restera dans un état prédéfini, d'une certaine manière, vous restreignez les capacités de l'appareil de l'utilisateur.

Que faire maintenant ? Vous avez deux options, La première est d'ignorer l'erreur car elle ne causera pas d'échec de construction, même si je fais la même chose et que la génération d'apk/aab se fait comme d'habitude. Une autre option est de fournir des dispositions de paysage ou de gérer la rotation comme dans certaines applications qui reconnaissent que si l'orientation est changée, ils demanderont à l'utilisateur de changer l'orientation car l'application n'est pas supportée dans cette orientation.

Cela peut changer à l'avenir => pour le moment, cela n'affecte pas notre processus de construction mais cela pourrait changer à l'avenir.

11voto

Rajat Points 453

Dans Android studio 3.6.0, je suppose qu'ils veulent que l'utilisateur gère l'orientation et qu'ils encouragent les développeurs à utiliser la fonction ViewModel trucs. Laissez-moi expliquer screenOrientation en détail

android:screenOrientation="portrait"

vous donnera une erreur, vous devez soit spécifier

android:screenOrientation="fullSensor" or android:screenOrientation="unspecified"

fullSensor Cela signifie que si vous avez activé l'option "Rotation désactivée", l'orientation de l'écran changera si vous déplacez le téléphone.

non spécifié Cela signifie que si vous avez désactivé l'option Rotation, le téléphone restera uniquement dans cette orientation. Sinon, il changera d'orientation si vous déplacez le téléphone.

5voto

Android Points 61
tools:ignore="GoogleAppIndexingWarning,LockedOrientationActivity"

2 votes

Pouvez-vous m'expliquer l'utilité de ce code ?

5voto

tktschool Points 96

J'ai trouvé 2 façons de résoudre ce problème

D'abord,

Android Studio -> Preferences (for Mac) or Settings (for Windows)
-> Search "chrome" 
-> Uncheck "Activity is locked to an orientation" 
-> Apply and Ok 
-> Sync Project with Gradle file

Deuxièmement,

Select "Run" from the main menu 
-> Edit Configurations.
-> Launch options - Launch
-> Select Nothing or Specified Activity
-> Sync Project with Gradle file

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X