在AndroidManifest中:应为android:screenOrientation=";“未指明”;
安卓工作室3.6 我希望我的应用程序始终处于在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
纵向
模式。因此,在我的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);
}