曾几何时,特别是在Eclipse-land中,Lint会在每次构建时运行,因此如果你没有Lint检查,你会立即发现 . 使用Android Studio(在1.3上测试),Lint默认情况下不会在构建上运行 . 新人可能会犯下Lint会检查的错误,但由于Lint实际上没有运行,新人并没有发现它们 .
(IOW,如果Lint测试没有在森林中运行,是否真的有Lint测试?)
对this blog post的评论显示了如何将Lint作为构建的一部分运行:
-
编辑项目配置
-
在配置的“常规”选项卡中,向下滚动并折叠"Before launch"面板
-
在该面板中,为模块添加一个名为
lint
的"Run Gradle Task"步骤
但是,这会运行命令行Lint,从而将以XML和HTML格式编写的报告发送到硬盘驱动器 . 这样可行,但让Android Studio运行in-IDE Lint检查会更简洁,因此结果显示在IDE面板中 .
有没有办法设置项目构建来执行in-IDE Lint检查?
奖励积分如果可以设置为仅运行Lint,而不是分析>检查代码完成的分析 . 虽然完整的分析偶尔会有用,但Lint足够慢,更不用说Android Studio执行的可疑的其他分析(例如,拼写检查) .
虽然设置它对于所有项目来说都不是一个好的计划(Lint扫描速度很慢),对于Android新手来说,这可能是一个合适的举措 .
4 回答
为Android Lint创建检查配置文件
转到文件 - >设置 - >编辑器/检查
选择管理 - >复制
将其命名为"Android Lint Profile",然后按Enter键
在此选项卡上仅保留标记的Android Lint规则
现在,您可以通过Analyze-> Inspect Code ...仅选择Android Lint规则进行检查,方法是选择“Android Lint Profile” .
在下一步中,让我们记录宏(编辑 - >宏 - >开始宏录制)以及后续步骤 .
分析 - >检查代码......
选择"Android Lint Profile"
按Enter键( important 使用键盘,因为宏录制器无法在此窗口上捕获鼠标)
点击"Run Selected Configuration"(绿色播放按钮)
停止宏录制并将其命名为“Lint and Run” .
应该做的最后一件事是将“Shift F10”映射到我们的宏 . 转到文件 - >设置...->键盘映射 . 找到我们的宏并更改快捷方式 .
现在lint将在每个构建 when you press Shift+F10 之前运行,结果将在Android Studio面板中 .
但是这个解决方案有一个缺点 . 如果通过单击“运行”按钮运行构建,则不会执行lint分析 .
可能这个信息会有所帮助,有人会提供更好的解决方案 .
一种可能(但难以实现)的解决方案是编写一个IDEA插件来执行此操作 . 您可以通过从存储库下载插件或从github下载代码来避免这种情况 . 以下代码片段将按顺序执行“编译”和“检查代码”操作 .
该代码已经过测试,可在Android Studio 1.3中使用 . 它将打开一个窗口来选择要检查的内容,而不是完成所有操作 .
Links
Source code on github
Built and Lint Jar
Lint 应该在 Android Studio 中运行,除非您已通过 build.gradle 文件中的 lintOptions 将其配置为关闭 .
这是来自http://developer.android.com/tools/debugging/improving-w-lint.html#studio的文档
以下是您可以添加到gradle build.gradle文件中 lintOptions 块的其他lint选项:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Lint-support
这里有关于android lint的更多信息:http://developer.android.com/tools/help/lint.html
它可以说是你可以在android studio中的某些操作后添加gradle任务 .
打开屏幕右侧的Gradle选项卡
选择您的任务
右键单击任务
选择执行操作
这应该在计划执行时运行任务 .
我之前通过添加一个pre-push git hook来完成此操作,该钩子将在push上自动运行lint,如果找到Lint错误则无法推送 . 预推钩脚本存储在Android项目仓库中,并通过gradle自动安装到用户的本地计算机上 .
安装-混帐hooks.gradle
比你的应用build.gradle
前推