Articles of lint

检查方法中的Android权限

这是我的代码,它工作得非常好 。 if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { mMap.setMyLocationEnabled(true); } 但是我不喜欢每次检查都有这么大的代码,并希望将它委托给我的实用程序类中的方法。 if (Utils.hasMapLocationPermissions(getActivity())) { mMap.setMyLocationEnabled(true); } 但是setMyLocationEnabled具有注释@RequiresPermission因此我无法将其委托给方法,因为lint和editor将其显示为错误 。 是否有一些注释要写在我的实用工具方法上并抑制lint? 像这样的东西 @ChecksPermission public boolean hasMapLocationPermissions(Activity activity) { return // my checking logic.. }

lint.xml和检查配置文件的上下文

在Android Studio中,可以通过Settings => Editor => Inspections管理lint.xml配置和./idea/inspectionProfiles/.xml 。 我了解lint是lint命令行工具使用的,而Android Studio IDE使用的是检查配置文件。 官方文档在这里 。 我还发现这篇文章如何将lint与Android Studio中的IntelliJ检查集成? 这篇post中的Android lint在命令行中缺少问题组(与Android Studio中提供的选项相比) 。 这个答案在build.gradle中有一个很好的lintOptions {}块示例。 然而,缺少一些信息。 规则的数字和名称是否相同? 是否有(简单)方法将检查配置文件转换为lint.xml ,反之亦然? 它们是完全分开的还是有一个被包含在另一个中的情况? 除了上面提到的情况(例如提交分析)之外,执行哪一个?

通过Android Studio菜单和gradlew命令行运行lint之间的区别

当我在命令行上运行以下命令时: ./gradlew -lint 我得到的结果与在Android Studio中选择以下菜单选项的结果不同。 Analyze->Inspect Code… 有谁能解释一下? 这是正常的吗? 一个谨慎的开发人员是否应该同时运行以find他/她项目的所有潜在问题?

Android数据绑定依赖项与支持库冲突

我正试图在我的Android项目中设置数据绑定,如下所示: dataBinding { enabled = true } 但是,当我添加支持库依赖项时,lint会抱怨: 所有com.android.support库必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。 发现版本25.1.0,21.0.3。 示例包括’com.android.support:animated-vector-drawable:25.1.0’和’com.android.support:support-v4:21.0.3′ 当我运行./gradlew app:dependencies ,我得到以下内容: … +— com.android.support:appcompat-v7:25.1.0 | +— com.android.support:support-annotations:25.1.0 | +— com.android.support:support-v4:25.1.0 | | +— com.android.support:support-compat:25.1.0 (*) | | +— com.android.support:support-media-compat:25.1.0 | | | +— com.android.support:support-annotations:25.1.0 | | | \— com.android.support:support-compat:25.1.0 (*) | | +— com.android.support:support-core-utils:25.1.0 | | | +— com.android.support:support-annotations:25.1.0 | | | […]

Android:Lint说 – 在项目或库中找不到布局文件中引用的类

在我的应用程序中,我正在使用Pull TO Refresh列表视图库。 我分别为所有屏幕设计了布局。 当我在我的项目上运行lint时,在我的xlarge屏幕的一个布局文件中,它给了我致命的错误: 在项目或库中找不到布局文件中引用的类com.handmark.pulltorefresh.library.PullToRefreshListView 在其他屏幕的相同布局文件中,它完全没有错误。 此外,我在我的文件的其他布局中使用了相同的库,它没有给出任何错误。 它也为Google Maps api提供了相同的错误。 我的项目目标是Google Api 16级,我已经检查过,所有库都添加到了它。 但是,即使在清洁项目上,错误也不会消失。

如何使用gradle忽略lint检查的完整文件夹?

我有一个包含生成代码的Android项目。 此代码中有一些lint违规,我不想在lint报告中显示,因为我们不会手动修复此代码问题。 是否有可能在lint检查中排除文件夹?

忽略Android lint中的几个警告

我知道我可以使用属性tools:ignore Lint中的规则tools:ignore 我的困难在于我想忽略几条规则。 就我而言,对于谷歌分析ga_trackingId ,我想忽略TypographyDashes和MissingTranslation 我试过没有成功 和 和 我现在没有想法。 如何在tools:ignore指定多个值tools:ignore ?

android lint库模块中未使用的资源在app中使用

我的应用程序分为主应用程序和不同的库模块。 当我跑 ./gradlew lint 每个模块都是独立检查的,每个模块都会生成一个lint.xml文件。 在lint.xml文件中有大量未使用的资源警告,但是这些资源在主应用程序中使用。 如果使用资源,如何配置lint以在应用程序中全局检查? 谢谢 :)

Android Lint报告重复

我在控制台中运行./gradlew clean lint命令并在build / lint / ReleaseOutput.html和build / lint / ReleaseOutput.xml中获取Lint报告我得到了相同错误的6次: 我还在XML文件中看到6次相同的问题: <issue id="UselessParent" severity="Error" … 那么,它为什么会发生以及如何避免这样的问题呢? 因为一个问题乘以6并且在Jenkins统计数据中显示不明显。 更新: 我发现这个bug与gradle lint任务有关。 要获得lint metrix Gradle几次构建: file=”build/manifests/release/AndroidManifest.xml” file=”build/manifests/debug/AndroidManifest.xml” 所以它也可以使问题总数翻倍。

当gradle执行检查时避免lint

有人告诉我一种方法,以避免每次我在gradle检查中执行“lint”? 我在build.gradle中定义了 lintOptions { quiet true } 但是,它一直在做这个任务。 问题是每次检查都需要很长时间。