问题描述
上下文
我在androidx.legacy.widget.Space
的布局中使用Android application project:
<androidx.legacy.widget.Space
android:layout_width="match_parent"
android:layout_height="@dimen/space_height" />
该类被标记为@Deprecated
-应该改用framework Space class:
// Copied from legacy-support-core-ui-1.0.0-sources.jar/androidx/legacy/widget/Space.java
@deprecated Use framework {@link android.widget.Space} class instead.
查找不赞成使用的API的用法
我在 Android Studio 4.2 Canary 7 ...
中为Java或XML文件运行了Inspect Code...
或Run inspection by Name ...
(请参见屏幕截图)
...并在通过shell命令..
进行构建时使用编译器参数options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
...,但是未报告已弃用的Space
类使用情况。如何检测到它(以及其他任何此类情况)?
更新27.08.2020
在Android Studio中,激活Java和XML的“不赞成使用的API ...”检查,如“设置”屏幕截图所示。
相关
- Where can I find a list of Android features that are deprecated by newer features?
- Display classes containing deprecation Android Studio
- How to add -Xlint:unchecked to my Android Gradle based project?
- How do I compile with -Xlint:unchecked?
- Recompile with -Xlint parameters
- Google issue #157676020: Lint doesn't warn about framework deprecated APIs
- Google issue #163080422: lint.xml: synchronize with IDE,allow directory nesting,support configurations,etc
解决方法
通过单击Deprecated API Usage in XML
搜索Analyze -> Run Inspectinon By Name ->type Deprecated API Usage
应该会获取XML文件中所有不赞成使用的实例。您可以粘贴按名称搜索返回的结果的屏幕截图吗?
或通过将范围设置为整个项目来尝试Manually Run Inspections。这还将获取不推荐使用的实例。对于Java类,搜索Java->Code Maturity->Deprecated API usage
。并为XML搜索XML->Deprecated API usage in XML
。
最后一个选择是在“在路径中查找”中搜索androidx.legacy.widget.Space
。按Ctrl + Shift + F并在整个项目中搜索androidx.legacy.widget.Space
,或者甚至可以添加文件掩码,例如仅xml
。