设置AndroidManifest的活动screenRotation每个风格不同

设置AndroidManifest的活动screenRotation每个风格不同,第1张

概述有没有办法从gradle的build.config动态设置 AndroidManifest中的活动screenOrientation? 我需要有一种允许旋转的味道,另一种味道只是肖像. 我已阅读了http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger,但他们的示例似乎只适用于普通的字符串标签. 我 有没有办法从gradle的build.config动态设置 AndroidManifest中的活动screenorIEntation?

@H_301_8@

我需要有一种允许旋转的味道,另一种味道只是肖像.@H_301_8@

我已阅读了http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger,但他们的示例似乎只适用于普通的字符串标签.@H_301_8@

我尝试了两种方法.@H_301_8@

使用gradle的manifestPlaceholders:
的build.gradle:@H_301_8@

@H_301_8@

productFlavors {  flavorRotation {    manifestPlaceholders = [ROTATION_PREF: "unspecifIEd"]  }  flavornorotation {    manifestPlaceholders = [ROTATION_PREF: "portrait"]  }}

使用AndroIDManifest.xml:@H_301_8@

@H_301_8@

...  <activity androID:name=".ui.Activityname"    androID:screenorIEntation="${ROTATION_PREF}"/>...

这似乎不起作用,没有给出错误但是当我构建“flavornorotation”时旋转没有锁定到纵向@H_301_8@

并尝试使用gradle的resValue:
的build.gradle:@H_301_8@

@H_301_8@

productFlavors {  flavorRotation {    resValue "string","orIEntation","unspecifIEd"  }  flavornorotation {    resValue "string","portrait"  }}

清单:@H_301_8@

@H_301_8@

...<activity androID:name=".ui.Activityname"  androID:screenorIEntation="@string/orIEntation"/>...

通过这种方式,它可以很好地构建,但是当我尝试安装到设备时,它就会失败并且AndroID Studio会给出消息:
“安装失败,消息为INSTALL_PARSE_Failed_UNEXPECTED_EXCEPTION.
通过卸载现有版本的apk(如果存在)然后重新安装,可能会解决此问题.“@H_301_8@

点击“确定”只会给出一个事件日志错误“错误安装APK”.@H_301_8@

那么,构建类型/口味之间有什么不同的方向吗?@H_301_8@

我宁愿避免在BaseActivity中以编程方式执行此 *** 作.@H_301_8@

编辑:
对不起,我试过玩了一些,我试过的第一种方法确实有效.我必须在我自己的方面犯了一个错误,在我自己的设备上安装了错误的构建风格.@H_301_8@

唯一的问题是AndroID Studio在“androID:screenorIEntation =”${ROTATION_PREF}“属性上发出警告说它无法找到它,尽管它会构建良好且有效.@H_301_8@

感谢您的回答尝试.@H_301_8@解决方法

1-Create screen.xml file insIDe res/values folder and code<?xml version="1.0" enCoding="utf-8"?><resources>    <string name="screen_type">phone</string></resources>2-In your activity insIDe onCreate() after setContentVIEw() check device type//checking tablets and phonesString screenType = getResources().getString(R.string.screen_type); if (screenType.equals("7-inch-tablet") || screenType.equals("10-inch-tablet")) { setRequestedOrIEntation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);} else {   setRequestedOrIEntation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);}

希望它会有所帮助.@H_301_8@ 总结

以上是内存溢出为你收集整理的设置AndroidManifest的活动screenRotation每个风格不同全部内容,希望文章能够帮你解决设置AndroidManifest的活动screenRotation每个风格不同所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1123801.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存