Android Studio Lint 检查不必要的模块依赖

Posted

技术标签:

【中文标题】Android Studio Lint 检查不必要的模块依赖【英文标题】:Android Studio Lint check for Unnecessary Module Dependency 【发布时间】:2015-04-23 20:10:36 【问题描述】:

在我的项目中对文件运行 Lint 检查时,我经常遇到如下错误(文件的实际名称已编辑,但您会明白的):

模块“name_of_my_project”对模块的依赖 'some_3rd_party_library' 可能会在以下情况下被删除 '文件'filepath_to_the_class_being_analyzed'的补充范围 也不包含对模块“some_3rd_party_library”的引用

对于每个未使用 Gradle 编译的库,我都会收到此错误 - 即 已将整个库导入到项目中然后作为依赖项添加的库。

Facebook 是一个很好的库示例,即使你想通过 Gradle 编译它,你也不能,因为他们不支持它,你需要将它作为本地库运行 - 看起来像你'然后会为每个不直接调用 Facebook 的类收到这个“不必要的模块依赖”警告。

那么,问题是 - 处理此错误的“正确”方式是什么?我应该忽略它还是应该以某种方式更改代码以使其消失?

编辑:在 Lint 的首选项菜单中,它对检查的描述如下(以防这有助于弄清楚):

此检查列出了包含冗余依赖项的模块 其他模块。可以安全地删除这些依赖项。

【问题讨论】:

我只是忽略它 :P android 工作室检查无论如何都是废话。但是,如果有人提出解决方案,我也会很想知道:) 【参考方案1】:

您可以使用以下代码块来避免 lint 检查。 将以下代码块添加到 android

内的 app build.gradle 文件中

lintOptions checkReleaseBuilds false // set to true to turn off analysis progress reporting by lint quiet true // if true, only report errors ignoreWarnings true abortOnError false disable "ResourceType"

【讨论】:

【参考方案2】:

Lint 检查程序存在已知问题。我在 Android Studio 2.1.1 中没有收到此错误。但是,如果您仍然这样做并且您知道它是虚假的,我建议您转到 Settings --> Editor --> Inspections --> Unnecessary Module Dependency 并将 Severity 类型从 Warning 更改为 Info。通过这种方式,您可以获得“干净的 lint 构建”并避免由于错误的 lint 算法而导致的“破窗”类型的状态。事实上,我已经创建了一个特殊的类别,它具有名为Info Due To Bad Lint Algo 的信息严重性,我已经分配了我知道是虚假的任何内容。这样我就可以定期检查这些问题,看看它们是否已修复。

顺便说一句,你应该向他们报告这个问题,所以它有一些修复的希望......祝你好运!

【讨论】:

以上是关于Android Studio Lint 检查不必要的模块依赖的主要内容,如果未能解决你的问题,请参考以下文章

2.1Android Studio通过Lint提升你的代码

错误记录Android Studio 编译时 lint 检查报错 ( WARNING: DSL element ‘android.dataBinding.enabled‘ is obsolet )

我们如何配置 Android Studio 以在每次构建时运行它的 Lint?

错误记录Android Studio 编译时 lint 检查报错 ( Could not resolve junit:junit:4.+. )

错误记录Android Studio 编译时 lint 检查报错 ( Error: Google Play requires that apps target API level 29 or )

找不到 com.android.tools.lint:lint-gradle Android Studio 3