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

第九步:点击确定

仅适用于 ma​​cOS

第一步:点击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 常见问题汇总

Android-Studio(或一般的 IDEA)重构多个源集

安装失败,原因是:'null' - Android Studio 3.5

android studio 升级到3.5版本报错gradle无法获取pom文件

更新 Android Studio 3.5 获得 proguard 警告

Android Studio和Eclipse有啥区别和相同之处吗