Android'deManifest'te: Android bekleniyor: screenOrientation = “belirtilmemiş”


44

Android Studio 3.6.

Uygulamamın her zaman portraitmodda olmasını istiyorum . Yani benim 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>

Ben uygulamayı çalıştırmak ve modunda SplashActivitygösterir portrait. Güzel. Ancak editör aşağıdaki hatayı gösterir:

Expecting android:screenOrientation="unspecified"

Neden?

Yanıtlar:


67

Manifest etiketinize (hemen altında xmlns:android="http://schemas.android.com/apk/res/android"),

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

Sonra uygulama etiketinin içine

tools:ignore="LockedOrientationActivity"

veya zaten araçlarınız varsa: uygulama etiketinde yoksay ve ardından araç olarak ayarla: ignore = "GoogleAppIndexingWarning, LockedOrientationActivity"
gizem

20

yalnızca Android Studio 3.6 ve sonraki sürümlerini etkiler

Burada sorun nedir? Bu sorun, android çerçevesi kullanıcının uygulama yönlendirmesini kendisi kontrol etmesini istediği için, örneğin bir kullanıcı uygulamayı yatay yönde kullanmak istiyorsa, cihazı çevirir ve sensörler işi yaparsa, ancak uygulama yönelimini kısıtlamanız önerilmez. geliştirici, ekran yönünü kısıtlar, rotasyon sensörü çalıştığında bile uygulama önceden tanımlanmış durumda kalır, böylece kullanıcının cihaz özelliklerini kısıtlarsınız.

Şimdi ne yapmalı? İki seçeneğiniz var., Birincisi aynı yaptığım ve apk / aab nesnesinin her zamanki gibi olduğu bile herhangi bir derleme hatasına neden olmayacağı için hatayı görmezden gelmektir. yönlendirmenin değişip değişmediğini tanıyan uygulamalar, uygulama bu yönde desteklenmediği için kullanıcıdan yönlendirmeyi değiştirmesini ister

Gelecekte değişebilir => şu anda inşa sürecimizi etkilemiyor ama gelecekte değişebilir


9

Android Studio 3.6.0'da sanırım kullanıcının yönlendirmeyi işlemesini ve geliştiriciyi ViewModel ürünlerini kullanmaya teşvik etmesini istiyorlar . Ekranı ayrıntılı olarak açıklayayım

android:screenOrientation="portrait"

belirtmeniz gereken hatalar verecektir

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

fullSensor "Döndür" seçeneğini AÇIK duruma getirdiğiniz anlamına gelir, yoksa telefonu taşıdığınızda yönlendirmeyi değiştirmez

belirtilmemiş Eğer Döndürme AÇIK ise, o zaman sadece bu yönde kalacaktır ve eğer değilse, telefonu hareket ettirdiğinizde yönü değiştirecektir.


4
tools:ignore="GoogleAppIndexingWarning,LockedOrientationActivity"

2
Lütfen bu kodun ne olduğunu açıklar mısınız?
Rahul

2

Aşağıdaki Prosedürü kullandım. Benim için mükemmel çalışıyor. Android Studio 3.6.0'da kullanıcının yönlendirmeyi ele almasını ve geliştiriciyi ViewModel ürünlerini kullanmaya teşvik etmesini istediklerini düşünüyorum. Bunu göz ardı etmek için aşağıdaki Prosedürü kullanın.

Öncelikle ekleyin:

xmlns:android="http://schemas.android.com/apk/res/android"

manifest etiketinde.

İkincisi, Ekle

tools:ignore="LockedOrientationActivity" 

uygulama etiketinde. Mutlu Kodlama.


1

Bu sorunu çözmenin 2 yolunu buldum

İlk,

Android Studio -> Preferences (or settings in Windows)
-> search "chrome" 
-> Uncheck "Activity is locked to an orientation" 
-> apply and ok 
-> Sync Project with Gradle flie

İkincisi, `

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

1

Sonrasına aşağıdaki satırı ekle android:screenOrientation="portrait"

tools:ignore="LockedOrientationActivity"

Ardından Alt+Enter

resim açıklamasını buraya girin


0

Bu sorunla karşılaştım, Benim gereksinimime göre, aktivitenin bir kısmı hem yönlendirmeleri hem de kalıntıları dikey olarak tutacak, Bu durumda, aşağıdaki adımlarla çözdüm:

Durum-1: - Yönü kilitlemek için

Adım-1: Lütfen AndroidManifest.xml dosyasına aşağıdaki satırı Uygulama etiketini ekleyin

araçları: = "LockedOrientationActivity" görmezden

<application
android:name=".activity.MyApplication"
tools:ignore="LockedOrientationActivity">

Adım-2: Ekran yönünü dikey veya yatay olarak kilitlemek istiyorsanız etkinlik etiketine aşağıdaki satırı ekleyin

android: screenOrientation = "portre" veya "manzara"

Durum-2: - Varsayalım ki belirli bir faaliyette yönlendirmeye izin vermek ve peyzaj için belirli bir tasarıma sahip olmak istiyorsanız

Adım-1: Yapılandırmalardaki Yönlendirme değerini kaldırın ve etkinlik etiketinden varsa ekran yönünü kaldırın ve Yönlendirmeyi değiştirirken değerleri kaybetmeden Etkinlikteki kişisel öneriyi (LifecycleObserver) kullanın.

android: configChanges = "yönlendirme"
android: screenOrientation = "portre" veya "manzara"

Bu sorunu çözme yolum budur, umarım yardımcı olur, Teşekkürler ve Mutlu Kodlama.


0

Bu Çözümü Deneyin:

AndroidAnafest:

<activity
    android:name="com.ui.activity.SplashActivity"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="adjustPan">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

Bu yardımcı olur umarım!


bu cevap çalışmıyor, android 3.6
Pedro Henrique

0

bu kodu kullanabilirsiniz:

if(MainActivity.this.getResources().getConfiguration().orientation== Configuration.ORIENTATION_PORTRAIT){
        MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
    }

1
Lütfen cevabınıza bazılarının açıklama yapmasını sağlayın, böylece diğerleri ondan öğrenebilir
Nico Haase

yönlendirme portresi o etkinliğin yönünü kilitlediyse. yani yönelim asla manzaraya dönüşmedi.
Abu Baker Nawaz

Lütfen tüm açıklamayı içerecek şekilde cevabınızı düzenleyin
Nico Haase

-1

Etkinlik etiketine aşağıdakileri koymayı deneyin

android:configChanges="orientation"
android:screenOrientation="portrait" 

Yardım değil. Portre ve manzara modu
a_subscriber

Her ikisini de eklemeniz gerekecek cevabı güncelleyin
Swayangjit

1
Android Studio 3.6'da çalışmaz.
Evgen
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.