Articles of lint

如何为Androidfindgradle lintOptions文件?

在我的android项目中,我得到了“…没有翻译… [MissingTranslation]”错误。 我通过谷歌搜索find了一些有效的abortOnError false和一个关于lintOptions的文档。 但是我不想忽略所有lint错误,因此我将Eclipse创建的xml复制为lintConfig file(“default-lint.xml”) ,并且它可以工作。 我想知道在哪里可以find有关lint.xml中可以设置的所有lint选项的完整文档? 谢谢你的帮助

自定义Lint规则未在eclipse / android studio中列出

我已经创建了自定义android Lint检查规则,当我从命令行运行它时效果很好但Android Studio在使用“Inspect Code”检查它时没有采用该规则。我已经选择了android studio的Inspection Profile中的所有Lint规则。 我做的是 使用自定义lint检查规则创建JAR 将jar放入〜/ .android / lint 当我从命令行运行lint检查时,它可以正常工作。 如下面的输出显示它检查规则。 lint OpenGLLearning Scanning OpenGLLearning: …………………………. Scanning OpenGLLearning (Phase 2): …. res/layout/activity_opengl.xml:8: Error: Edit Text ID Must be starting with et [etName] <EditText ^ 这里etName是我创建的自定义lint规则的问题ID。 但Android Studio不会在任何地方列出“etName”规则,并且在使用Inspect Code检查lint时不会显示错误。 我跑的时候 ./gradlew check 它会对rule进行检查。当我在终端上运行lint –list命令时,也会出现自定义规则,但无法弄清楚为什么Android Studio中的Inspect Code没有检查它。 我正在使用构建工具21.0.2和目标版本21

在AndroidStudio 3.0.1中,DialogFragment getActivity()“可能为空”lint警告

我能find的最接近的现有问题是Android Studio 3.0 lint警告,用于引用活动 ,但它没有帮助。 使用AndroidStudio 3.0.1,我有一个DialogFragment ,我通常会这样做: @Override @NonNull public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); … 我有一个lint警告呻吟我, Argument ‘getActivity()’ might be null 。 我理解为什么 getActivity()可能为null,我理解lint检查如何知道这一点(来自@Nullable注释)。 我的问题是: getActivity()可能是空的,这一切都非常好,但实际上我应该如何优雅和整洁地处理这个问题呢? onCreateDialog 必须返回一个Dialog (因为超类’ @Nullable注释),所以我必须有Activity上下文来创建它。 如果DialogFragment没有附加到Activity,我可以假设onCreateDialog永远不会被调用,但是 – 我如何处理不整齐的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 ?