AndroidManifest에서 : android : screenOrientation =“지정되지 않음”이 필요합니다


44

안드로이드 스튜디오 3.6.

내 앱이 항상 portrait모드 에 있기를 원합니다 . 그래서 내 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>

앱을 실행하고 모드로 SplashActivity표시 portrait합니다. 좋은. 그러나 편집기에는 다음 오류가 표시됩니다.

Expecting android:screenOrientation="unspecified"

왜?

답변:


67

매니페스트 태그 (바로 아래 xmlns:android="http://schemas.android.com/apk/res/android")에

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

그런 다음 응용 프로그램 태그 안에

tools:ignore="LockedOrientationActivity"

또는 이미 애플리케이션 태그에 tools : ignore가있는 경우 tools : ignore = "GoogleAppIndexingWarning, LockedOrientationActivity"
— 미스터리로 설정 됨

20

Android Studio 3.6 이상에만 영향을 미칩니다.

여기서 문제는 무엇입니까? 이 문제는 안드로이드 프레임 워크가 사용자가 앱 방향을 직접 제어하기를 원하기 때문에 발생합니다. 예를 들어 사용자가 가로 방향으로 앱을 사용하려는 경우 장치를 뒤집어 놓고 센서가 작동하지만 센서가 작동 할 때 개발자는 회전 센서가 작동하더라도 사용자의 기기 기능을 제한하는 방식으로 미리 정의 된 상태를 유지합니다.

지금 무엇을해야합니까? 두 가지 옵션이 있습니다. 첫 번째는 동일한 작업을 수행해도 빌드 실패가 발생하지 않으므로 오류를 무시하는 것이며 apk / aab 생성은 평소와 같습니다. 또 다른 옵션은 가로 레이아웃을 제공하거나 방향이 변경되면 인식하는 앱은 해당 방향에서 앱이 지원되지 않으므로 사용자에게 방향을 변경하라는 메시지를 표시합니다.

현재 => 현재 변경 될 수 있지만 빌드 프로세스에는 영향을 미치지 않지만 향후 변경 될 수 있습니다.


9

Android Studio 3.6.0에서는 사용자가 방향을 처리하고 개발자가 ViewModel 을 사용하도록 권장하기를 바랍니다 . screenOrientation을 자세히 설명하겠습니다

android:screenOrientation="portrait"

당신은 당신이 지정 해야하는 오류를 줄 것이다

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

fullSensor "회전 끄기"가 켜져 있거나 전화를 움직 인 방향에 따라 방향이 변경되지 않음을 의미합니다.

지정되지 않음 회전이 켜져 있으면 해당 방향으로 만 유지되고 그렇지 않은 경우 전화를 이동하는 방향에 따라 방향이 변경됩니다.



2

아래 절차를 사용했습니다. 그것은 나를 위해 완벽하게 작동합니다. Android Studio 3.6.0에서는 사용자가 방향을 처리하고 개발자가 ViewModel을 사용하도록 권장하기를 원한다고 생각합니다. 이를 무시하려면 아래 절차를 사용하십시오.

먼저 추가 :

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

매니페스트 태그에서.

둘째, 추가

tools:ignore="LockedOrientationActivity" 

응용 프로그램 태그에. 행복한 코딩.


1

이 문제를 해결하는 두 가지 방법을 찾았습니다.

먼저,

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

둘째,`

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


0

나는이 문제에 직면했다. 내 요구 사항에서 일부 활동은 두 방향을 모두 지원하고 여전히 세로로 유지됩니다.이 경우 다음 단계로 해결했습니다.

사례 -1 :- 오리엔테이션 잠금

1 단계 : AndroidManifest.xml에 다음 줄 응용 프로그램 태그를 추가하십시오

tools : ignore = "LockedOrientationActivity"

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

2 단계 : 화면 방향을 세로 또는 가로로 잠 그려면 활동 태그에 다음 줄을 추가하십시오.

android : screenOrientation = "세로"또는 "가로"

사례 2 :- 특정 활동에서 방향을 허용하고 풍경에 대한 특정 디자인을 원한다고 가정하십시오.

1 단계 : 구성 변경 에서 방향 값을 제거하고 활동 태그에 화면 방향이 있으면 화면 방향을 제거하고 방향을 변경하는 동안 값을 잃지 않고 활동에서 개인적 제안 (LifecycleObserver)을 사용하십시오.

android : configChanges = "orientation"
android : screenOrientation = "세로"또는 "가로"

이것이 내가이 문제를 해결하는 방법입니다. 감사합니다 & 감사합니다.


0

이 솔루션을 사용해보십시오 :

AndroidMainfest :

<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>

도움이 되었기를 바랍니다!


이 답변은 안드로이드 3.6에서 작동하지 않습니다
— Pedro Henrique

0

이 코드를 사용할 수 있습니다 :

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

1
다른 사람들이 그로부터 배울 수 있도록 귀하의 답변에 약간의 설명을 추가하십시오
— Nico Haase

방향 세로가 해당 활동의 방향을 고정한 경우 방향이 가로로 바뀌지 않았 음을 의미합니다.
— Abu Baker Nawaz

모든 설명을 포함하도록 답변을 편집하십시오
— Nico Haase

-1

활동 태그에 다음을 입력하십시오.

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

도움이되지 않습니다. 세로 및 가로 모드
— a_subscriber

답변을 업데이트했습니다. 둘 다 추가해야합니다
— Swayangjit

1
Android Studio 3.6에서는 작동하지 않습니다.
— Evgen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.