在AndroidManifest中:应为android:screenOrientation=";“未指明”;

在AndroidManifest中:应为android:screenOrientation=";“未指明”;,android,android-manifest,screen-orientation,Android,Android Manifest,Screen Orientation,安卓工作室3.6 我希望我的应用程序始终处于纵向模式。因此,在我的AndroidMainfest.xml中: 我运行应用程序并在纵向模式下显示SplashActivity。美好的 但编辑器显示以下错误: 期待android:screenOrientation=“未指定” 为什么?尝试在活动标签中添加以下内容 android:configChanges="orientation" android:screenOrientation="portrait" 它只影响Android Studi

安卓工作室3.6

我希望我的应用程序始终处于
纵向
模式。因此,在我的
AndroidMainfest.xml
中:


我运行应用程序并在
纵向模式下显示
SplashActivity
。美好的 但编辑器显示以下错误:

期待android:screenOrientation=“未指定”

为什么?

尝试在活动标签中添加以下内容

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

它只影响Android Studio 3.6+

这里的问题是什么? 出现此问题是因为android framework希望用户自己控制应用程序的方向。不建议限制您的应用程序方向。例如,如果用户希望以横向方向使用应用程序,他只需翻转设备,传感器即可完成工作,但当开发人员限制屏幕方向时,即使旋转传感器工作,应用程序仍将保持预定义状态,这在某种程度上限制了用户的设备功能

现在该怎么办? 你有两个选择。, 第一个是忽略错误,因为它不会导致任何构建失败,即使我正在做同样的事情,并且apk/aab生成与往常一样 另一个选项是提供横向布局或处理旋转,就像某些应用程序一样,这些应用程序可以识别方向发生变化时,它们会提示用户改变方向,因为应用程序在这种方向上不受支持


它将来可能会改变=>目前它不会影响我们的构建过程,但将来它可能会改变

尝试此解决方案:

AndroidMainfest:



希望这有帮助

在安卓studio 3.6.0中,我想他们希望用户能够掌握方向,并鼓励开发人员使用ViewModel东西。 让我详细解释一下屏幕定位

android:screenOrientation=“纵向”

将给您带来错误,您必须指定

android:screenOrientation=“fullSensor”或android:screenOrientation=“未指定”

fullSensor表示您是否打开了“旋转关闭”按钮,它将根据您移动手机的情况改变方向

未指定表示如果您打开了“旋转关闭”,则它将仅停留在该方向,如果没有,则它将根据您移动手机的情况更改方向。

在您的清单标签中(就在
xmlns:android=”下方)http://schemas.android.com/apk/res/android“
),将

然后在应用程序标记内,放置

tools:ignore="LockedOrientationActivity"

我曾经遇到过这个问题,在我的要求中,一些活动将支持两种方向,并保留纵向,在这种情况下,我通过以下步骤解决:

案例1:-锁定方向

第1步: 请在AndroidManifest.xml中添加以下行应用程序标记

工具:ignore=“LockedOrientationActivity”


第2步:如果要锁定纵向或横向屏幕方向 在活动标记中添加以下行

android:configChanges="orientation"
android:screenOrientation="portrait" 
android:screenOrientation=“纵向”或“横向”

案例2:-假设您希望在特定活动中进行定位,并对景观进行特定设计

第1步: 删除configchanges中的方向值,并删除活动标记中的屏幕方向(如果存在),以及我的个人建议在更改方向时在活动中使用(LifecycleObserver),而不会丢失值

android:configChanges=“定向”
android:screenOrientation=“纵向”或“横向”


这就是我解决此问题的方法,希望能有所帮助,谢谢并祝您编码愉快。

我使用了以下步骤。它对我非常有效。在androidstudio3.6.0中,我认为他们希望用户能够掌握方向,并鼓励开发人员使用ViewModel。使用以下步骤忽略此问题

首先添加:

xmlns:android="http://schemas.android.com/apk/res/android"
在manifest标签中

第二,增加

tools:ignore="LockedOrientationActivity" 

在应用程序标记中。快乐的编码。

我找到了两种解决这个问题的方法

首先,

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

在android:screenOrientation=“纵向”

然后单击Alt+Enter

您可以使用以下代码:

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

没有帮助。这是纵向和横向模式更新了答案,您必须同时添加这两个选项。您还可以解释此代码的用途。请为您的答案添加一些解释,以便其他人可以从itif中学习方向纵向锁定了该活动的方向。这意味着方向从未更改为横向。或者,如果应用程序标记中已经有工具:ignore,则设置为tools:ignore=“GoogleAppIndexingWarning,LockedOrientationActivity”-嘿!工程师希望限制应用程序在横向模式下使用。让我们给他们屏幕定位标签。一会儿:-嘿!用户希望通过手机旋转来控制方向。让我们限制屏幕方向标签的使用。你能解释为什么吗?我不能。。。此错误已在最新版本的Android Studio中修复。。。这是安卓工作室黄点的推荐。。。
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
tools:ignore="LockedOrientationActivity"
if(MainActivity.this.getResources().getConfiguration().orientation== Configuration.ORIENTATION_PORTRAIT){
        MainActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
    }