Dan*_*tte 13 android lint gradle android-studio android-gradle-plugin
我注意到Android Studio将验证@Nullable代码中没有被忽略:
恩.
@Nullable MyObject getMyObject();
...
MyObject o = getMyObject();
o.method();
Run Code Online (Sandbox Code Playgroud)
^ 
Method invocation 'method' may produce 'java.lang.NullPointerException'
这是由NullableProblemsIntelliJ警告强制执行的.
我想通过lint规则在构建时从gradle强制执行此规则.有没有人碰巧知道是否可以通过gradle启用类似的东西?
如果有问题的检查是lint,那么有一种方法可以lintOptions在你的内部配置build.gradle强制构建失败,就像在这里回答这个问题一样
但是,您正在讨论的检查是由Android Studio中的IDE本身提供的.目前没有办法停止这些检查的构建,因为IntelliJ开发人员的这个规范答案这里是IntelliJ提供的静态代码分析文档的链接.在文档中解释的分析中,具体名称是"常量条件和例外":
此检查分析方法控制和数据流,以报告始终为真或假的可能条件,静态证明其值为常量的表达式,以及可能导致违约性合同违规的情况.标记为@Nullable或@NotNull的变量,方法参数和返回值被视为可空(或分别为非空),并在分析期间用于检查可空性合同,例如报告可能的NullPointerException错误.
我认为您可以做的最好的事情是更改其严重性,以便它显示为警告(IDE中的红色下划线).这样做,转到Preferences/Inspections/Probable Bugs并将"Constant conditions&exceptions"的严重性更改为警告:
如果您忽略警告,您的项目仍将构建,但它看起来不会很好:
您必须对其进行设置,以便您的团队共享相同的Android Studio代码检查设置.您可以使用设置存储库执行此操作.
另请注意,您也可以启用Commit Changes/Perform代码分析复选框,这将在团队提交之前强制进行代码分析.
单击"提交"时,它首先执行分析并找到您一直在讨论的警告:
还请注意,如果NPE在项目中出现问题,强迫团队使用此类检查可能不是最佳选择.相反,您可以尝试选择,例如公开讨论返回null生成的问题和可能的解决方案.这篇关于在Google Guava wiki中避免null的优秀文章是一个很好的起点.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           2628 次  |  
        
|   最近记录:  |