Android Studio 3.5 重构问题
Posted
技术标签:
【中文标题】Android Studio 3.5 重构问题【英文标题】:Android studio 3.5 refactor issue 【发布时间】:2019-12-26 16:48:36 【问题描述】:我刚刚更新到 android Studio 3.5,现在当我尝试重构文件 AndroidManifest.xml
时,我所有的应用权限都移到了文件的底部。
还有其他人遇到过这个问题吗?有什么解决办法吗?
重构前:
重构后:
适用于我所有的项目文件。
为什么重要:
【问题讨论】:
为什么这是一个需要解决的问题? @TimCastelijns:如果不出意外,它会在版本控制中引入意想不到的噪音。我不能排除旧 Android 设备中的真正问题,因为<uses-permission>
过去需要出现在 <application>
之前,尽管这可能真的是一个我们现在看不到的旧工具问题。
FWIW,I wrote up more about the problem,包括触发此效果的文件a dedicated issue for the 3.4 -> 3.5 upgrade problem。
@TimCastelijns 在 xml 布局中,它会改变组件的顺序(例如:我的 ImageView 在我的 TextView 之前,这不是我想要的!)
他们只是在 3.5 中取消了所有为稳定所做的努力。可能是有史以来最糟糕的 AS 错误,因为它可以在运行时默默地破坏您的应用程序:/
【参考方案1】:
您只需要从设置中为 Android 应用程序设置 xml 布局。
按照以下步骤操作:
1. 转到 Android Studio > 首选项。对于 Windows,请转到 文件 > 设置。
2.在搜索栏中搜索xml。
3.在code style部分,选择xml标签。
4.在右上角,点击set from...,在predefined style下,选择Android
5.点击应用并尝试重构。
【讨论】:
在此之后您可能需要重新启动 Android Studio。 这让我很顺利,但我认为问题在于排列选项卡中缺少“属性”属性标签。有关详细信息,请参阅我自己的答案中的屏幕截图。 据我所知,这个建议有效的原因是因为它插入了这些“属性”类型标签,尽管这样做的代价是重置您可能已设置的任何其他自定义项,因此您将拥有之后再次重新实现这些,但它的工作原理:)。 恐怕这个解决方案不适用于我的情况。 在 Android Studio 4.0.1 上,这个 bug 仍然存在。重新格式化时,它会更改我的组件在 xml 布局中的顺序。太可笑了!【参考方案2】:如下重置相应的 Android 代码样式。
仅适用于 Windows
第一步:点击文件菜单。
第 2 步:导航到设置。
第 3 步:在左侧面板中找到 Editor**。
Step4:在编辑器的子菜单中找到代码样式。
第五步:点击代码样式子菜单中的XML。
第六步:点击右侧面板右上角的Set from。
第七步:选择预定义样式。
第8步:选择Android。
第九步:点击确定。
仅适用于 macOS
第一步:点击Android Studio菜单。
第 2 步:导航到首选项。
第 3 步:在左侧面板中找到 Editor**。
Step4:在编辑器的子菜单中找到代码样式。
第五步:点击代码样式子菜单中的XML。
第六步:点击右侧面板右上角的Set from。
第七步:选择预定义样式。
第8步:选择Android。
第九步:点击确定。
【讨论】:
【参考方案3】:似乎默认方案在排列规则中遗漏了“属性”属性。将它们重新添加到作品中对我来说就像是一种魅力。
可以在以下位置进行更正:Preferences > Editor > Code Style > XML
【讨论】:
【参考方案4】:只是添加更多细节。
这是来自 Android Studio 3.5 Canary 8 的 android studio 的一个已知问题。它应该会在下一个版本中得到修复,因为这会影响大量开发人员。
您可以看到错误的状态here
解决办法也是
损坏的 XML 代码样式
编辑 XML 代码时,当您从菜单栏中选择代码 > 重新格式化代码时,IDE 可能会应用不正确的代码样式。要解决此问题,请重置相应的 Android 代码样式,如下所示:
通过单击文件 > 设置(在 macOS 上,Android Studio > 首选项)打开“设置”窗口。 在左侧面板中,单击编辑器 > 代码样式 > XML。 在右侧面板右上角附近,选择 Set from > Predefined Style > Android 点击确定。
可以在这里找到 -> Known issues with Android Studio and Android Gradle Plugin
编辑:这已在 Android Studio 版本 3.5.2 中得到修复
【讨论】:
【参考方案5】: ctrl + alt + s 搜索 XML我想做与第一个答案相同的步骤,但我只需要将默认方案更改为项目。
希望你也这样解决。对不起我的英语不好 !
【讨论】:
【参考方案6】:如果您定义了自定义代码样式,则必须为每个规则指定一个类型:标记或属性。
好像更新后,如果你不指定类型,规则将适用于两者。不知道这是否是一个错误,但这就是我修复的方式。
This does not work on 3.5
After adding the attribute type to each rule, it worked
【讨论】:
【参考方案7】:Windows 版“Android Studio 3.5”请按照以下步骤操作
1:点击菜单中的文件。
2:进入设置。
.
3:点击编辑器。
4:点击代码样式
5:点击 XML。
6:点击右上角的“Set from...”。
7:选择预定义样式。
8:选择 Android。
9:点击确定。
【讨论】:
【参考方案8】:3.5.0 已知问题
在编辑 XML 代码时,当您从菜单栏中选择 代码 > 重新格式化代码 时,IDE 可能会应用不正确的代码样式。要解决此问题,请重置相应的 Android 代码样式,如下所示:
通过单击文件>设置打开设置窗口(在 macOS 上, Android Studio > 首选项)。 在左侧面板中,单击编辑器 > 代码样式 > XML。 在右侧面板右上角附近,选择Set from > 预定义样式 > Android。 点击确定。【讨论】:
【参考方案9】:对于任何搜索此 Android Studio 4+ 的人:
File -> Setting -> Editor -> Code Style -> XML -> Arrangement ->
将强制重新排列设置为“从不”
从设置为“Android”
【讨论】:
以上是关于Android Studio 3.5 重构问题的主要内容,如果未能解决你的问题,请参考以下文章
Android-Studio(或一般的 IDEA)重构多个源集
安装失败,原因是:'null' - Android Studio 3.5
android studio 升级到3.5版本报错gradle无法获取pom文件