Articles of android lint

Android Lint – 如何隐藏警告’资源Xxx似乎未使用’

对于某些特定资源,我想禁用(新)Android Lint警告“资源Xxx似乎未使用”。 对于其他Lint警告,我能够利用快速辅助,它显示了3个禁用警告的选项,其中一个是针对该特定文件的。 但是这个警告没有显示任何快速辅助,它出现在Eclipse中,文件顶部有一个通用的黄色警告颜色(定义资源的颜色)。 我也尝试手动编辑lint.xml文件,如下所示: 但没有运气(我在这里从Android Lint引用中获取了id )。

如何解决这个问题:’运行android lint’问题

在我的项目的任何活动中,如果我做了一些更改,然后保存该活动,我得到消息“运行android lint遇到了问题。” 这是我的错误日志: java.lang.NullPointerException at com.android.ide.eclipse.adt.AdtUtils.workspacePathToFile(AdtUtils.java:466) at com.android.ide.eclipse.adt.internal.lint.EclipseLintClient.getClassPath(EclipseLintClient.java:753) at com.android.tools.lint.client.api.LintClient.getJavaClassFolders(LintClient.java:198) at com.android.tools.lint.detector.api.Project.getJavaClassFolders(Project.java:270) at com.android.tools.lint.client.api.LintDriver.checkIndividualClassFiles(LintDriver.java:977) at com.android.tools.lint.client.api.LintDriver.checkClasses(LintDriver.java:920) at com.android.tools.lint.client.api.LintDriver.runFileDetectors(LintDriver.java:785) at com.android.tools.lint.client.api.LintDriver.checkProject(LintDriver.java:661) at com.android.tools.lint.client.api.LintDriver.analyze(LintDriver.java:288) at com.android.ide.eclipse.adt.internal.lint.LintJob.run(LintJob.java:151) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)\ 我不知道如何解决这个问题。

Android Lint限制语言以检查缺少的翻译

我的应用程序仅支持2种语言 – 英语和德语。 所以我有语言字符串的这种文件夹结构: 的myproject / RES /值/ strings.xml中 的myproject / RES /值-DE / strings.xml中 当我运行Lint检查时,我收到许多关于缺少语言的警告,我的应用程序不需要支持: “some_string”未翻译为af,am,ar,be,bg,ca,cs,da,el,en-rGB,es,es-rUS,et,fa,fi,fr,hi,hr,hu,in ,it,iw,ja,ko,lt,lv,ms,nb,nl,pl,pt,pt-rPT,ro,ru,sk,sl,sr,sv,sw,th,tl,tr,uk,vi ,zh-rCN,zh-rTW,zu 此警告很难理解哪些字符串未翻译为德语。 我必须查看每个警告并搜索“de”符号以了解此字符串没有翻译成德语。 所以我的问题很简单 – 如何告诉Lint只检查2种语言 ?

仅针对我的项目的Android Lint报告,不包括库项目?

如何运行Android Lint以便它只报告我的项目模块,并忽略我正在使用的任何库项目? 即使我将Lint瞄准我的项目模块,它也会在库项目中列出我不感兴趣的问题列表 – 我想集中精力修复我自己代码中的问题。 我看不到一个参数来指定它是否遵循对库项目的引用,但也许你可以看到如何做到这一点。

为什么ContextThemeWrapper现在仅限于支持库组?

我开始使用ContextThemeWrapper动态地将样式应用于ImageButton ; 基于我的另一个问题的答案,以及其他类似 问题的答案。 ContextThemeWrapper wrapper = new ContextThemeWrapper(getContext(), mStyleRes); mImageButton = new AppCompatImageButton(wrapper, null, 0); 但最近一个lint错误开始出现在ContextThemeWrapper构造函数上,说明: ContextThemeWrapper只能在同一个库组中调用(groupId = com.android.support) 我注意到标有@RestrictTo(LIBRARY_GROUP)注释的类,这会导致出现lint错误。 但是我找不到任何关于为什么它仅限于com.android.support库组的信息。 据我所知,这是以编程方式将样式,主题或主题叠加应用于View的唯一方法; 除了将默认样式属性设置为构造函数中的第三个参数之外。 所以我想知道为什么它的使用会受到限制; 在支持库之外使用类有什么问题吗? 可能会有我不知道的副作用吗? 我遇到的唯一类似的问题是一个关于(现在已修复)的错误; 导致此lint错误显示在AppCompatActivity的子类的onCreate方法上。 我认为这不是一个错误,而是一个故意的限制; 我想知道背后的推理。 我应该注意; 这个限制(截至目前)实际上似乎对使用ContextThemeWrapper的代码没有影响。 它编译并运行良好,并按照我的预期工作。

typesanimation师的预期资源

我已将SDK更新到最新版本,但现在我收到了一个lint错误。 错误:animatortypes的预期资源[ResourceType] 此行发生错误: AnimatorInflater.loadAnimator(context, R.anim.right_slide_in) 引用的资源/res/anim/right_slide_in.xml如下所示: 它以前总是奏效。 有人可以解释为什么我会收到这个错误吗?

Android Lint:如何忽略区域语言环境字符串文件中缺少的翻译警告,该文件故意仅覆盖某些默认翻译?

是否有可能在没有Lint抱怨MissingTranslation的单独资源文件中翻译某些字符串,而不是全部? 例如:我的应用程序的字符串都在res / values / strings.xml中 。 其中一个字符串是 Postal Code 由于“邮政编码”在美国通常被称为“邮政编码”,我想在内容中添加另一个资源res / values-en-rUS / strings.xml : Zip Code 但是,Lint会抱怨values / strings.xml中的其他字符串,而不是values-en-rUS / strings.xml中的其他字符串 我意识到你可以通过指定tools:ignore来抑制警告tools:ignore values / strings.xml 。 但这是不可取的,因为Lint警告在翻译成另一种语言时实际上很有用。 相反,是否可以在values-en-rUS / strings.xml文件中禁止警告,如在查找缺少的翻译时告诉Lint不要将该文件用作标准?

如何解决有关导出的Firebase Messaging服务实现的android lint投诉?

按照Google开发人员在我的应用中实施Firebase的说明 ,我注意到android lint抱怨。 我们的想法是,我们必须实现两个从Firebase服务inheritance的服务: public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService { … } public class MyFirebaseMessagingService extends FirebaseMessagingService { … } 然后在清单中注册这些服务。 但是,它并不完美。 特别是,这两个推荐的AndroidManifest.xml服务条目不包含任何特殊权限: 所以linter说: 导出的服务(设置为exported = true或包含intent-filter且未指定exported = false的服务)应定义实体必须具有的权限才能启动服务或绑定到该服务。 没有这个,任何应用程序都可以使用此服务。 我应该只将此属性添加到每个服务标记并完成它 tools:ignore=”ExportedService” 或者在这种情况下有更好的方法吗? 我的意思是,公开这些特定的Firebase派生服务是否安全?

为什么我不能在Eclipse中的菜单“窗口”中使用“运行Android lint”工具栏我可以运行它,可以吗?

我刚刚更新了eclipse的SDK和ADT,现在有一件事让我困惑:我不能使用菜单“Window”中的“Run Android Lint”。 但是我可以从eclipse工具栏运行它,或者在我的项目上点击richt-click,然后select“Android tools” – “run lint”。 我不知道这是从Android的错误,或者我通过更新做了错误。 任何人都像我一样的问题? 谢谢! 最好的问候,卡特里娜

Android – 将所有lint警告设置为除某些之外的错误

我正在尝试使我的持续集成在引入不在lint-baseline.xml文件中的新的lint警告时失败。 我想要把所有的lint警告视为错误(所以构build被中止),但我想要一种方式来指定某些lint检查被视为信息级或警告级,以便它们仍然出现在lint结果中,但不要不会导致构build失败。 下面是一个基本上我想要做的例子(除非这不起作用,如果存在任何不被忽略的警告,构build失败): lintOptions { lintConfig file("lint.xml") baseline file("lint-baseline.xml") checkAllWarnings true warningsAsErrors true abortOnError true informational 'MissingTranslation, …' // don't fail the build for these } 有没有一种简单的方法把所有的皮棉检查都视为错误,排除某些错误? 我曾经想过手动设置所有的200多个lint检查到错误级别,但是这不是很有前途的证据,因为每次添加新的lint检查都必须更新列表。