草庐IT

Android lint SharedPreferences.Editor.apply() 警告

我已经更新到最新的AndroidSDK工具(23.0.0)、平台工具(20.0.0)、AndroidStudioGradle插件(0.12.+),突然我收到一个奇怪的Lint问题报告,说我应该使用apply()而不是commit()因为apply()是异步的,并且将允许UI线程继续进行,因为commit()将阻止它进行写入。凉爽的。但我仍然得到这个:这是一个Lint错误,还是我遗漏了什么?显然我可以抑制这个警告,但我发现它毫无意义并且不知道根本原因。编辑:从命令行构建应用程序时也会引发此问题。 最佳答案 这确实是一个Lint错误。更

android - Lint 构建失败,出现安全错误 "WrongConstant: Incorrect constant"。 IntDef 注释

在我的Result类中,我用@IntDef进行了注释newInstance()方法中的第一个整数参数如下:publicclassResult{publicstaticfinalintSUCCESS=0;publicstaticfinalintFAIL=1;publicstaticfinalintUNKNOWN=2;//...privateResult(@Statusintstatus,Uriuri){mStatus=status;mUri=uri;}publicstaticResultnewInstance(@Statusintstatus,Uriuri){returnnewResul

android - 在 Android Studio 或 git/github 中强制执行编码风格并在团队之间发出警告和 lint-free

我想以一种方式设置我们的项目,以确保对checkin强制执行编码风格、警告和无lint。我还想让开发人员非常容易地看到他们不合规的情况。理想情况下,当您编辑文件或运行构建时,这将在AndroidStudio中呈现(我们所有的开发人员都使用相同的IDE)。此外,当开发人员克隆存储库时让这种强制执行“正常工作”会很好,而不需要任何额外的手动设置。最干净的方法是什么? 最佳答案 静态代码分析器,如Checkstyle,FindBugs和PMD可能对你有帮助。在thesescripts的帮助下,它们可以配置为与Gradle和AndroidS

Android Studio Lint - 为 lint 设置 API 级别

事情是这样的。我有一个与API15及更高版本兼容的应用程序,但由于它非常大并且我已经达到65k方法限制,我不得不将它设为MultiDexApplication类的后代。这会稍微减慢构建时间,所以我必须实现一些优化来加快这个过程。我的list中有以下代码,这显着减少了构建API>=21时的构建时间(取自其他一些SO线程):productFlavors{dev{minSdkVersion21}prod{minSdkVersion15}}一切正常,但问题是在开发过程中,Androidstudio认为我的minSdkVersionSDK级别是21(正确),并且lint没有显示不兼容的API(1

Android 抑制特定属性的 UnusedAttribute 警告

我的整个项目中都有一些针对“UnusedAttribute”的linter警告。属性elevation仅用于API级别21及更高级别(当前最低为16)属性breakStrategy仅用于API级别23及更高级别(当前最低为16)属性hyphenationFrequency仅用于API级别23及更高级别(当前最小值为16)属性letterSpacing仅用于API级别21及更高级别(当前最小值为16)我知道我可以抑制所有属性的警告。tools:ignore="UnusedAttribute"或lintOptions{disable'UnusedAttribute'}但是,我只想抑制特定属

Android Lint 插件 - 设置应检查的自定义警告/错误

我的问题是,是否有办法向lint插件添加自定义检查,它应该在构建版本之前警告我。例如我希望它检查所有Cursor,InputStream我的代码中的对象(如果它们已关闭),或者检查我的代码中的//TODO:,//FIXME:.如果有任何方法可以做到这一点,或者甚至不使用Lint插件,您有什么想法吗?提前致谢! 最佳答案 是的,您可以添加自定义检查;见http://tools.android.com/tips/lint/writing-a-lint-check和http://tools.android.com/tips/lint-cu

Android Lint 说我可以用 <merge> 标签替换布局,但我需要 fragment 事务中布局的 ID

我在Android中有一个选项卡式界面,并在我的应用程序中使用FrameLayout作为我的主要布局。我收到一条AndroidLint警告,上面写着:Thiscanbereplacedwithatag我唯一使用此FrameLayout(名为fragmentContainer)的地方是在onTabSelected监听器中。这是一个简化版本。@OverridepublicvoidonTabSelected(ActionBar.Tabtab,FragmentTransactionfragmentTransaction){//Whenthegiventabisselected,showthet

android - React-native 项目构建失败 : Could not find com. android.tools.lint :lint-gradle:26. 1.0

我在尝试生成新版本的apk时遇到了一些问题。(但是该应用程序在使用react-nativerun-android进行调试时正常运行)首先我有这个输出信息:Task:react-native-maps:compileReleaseJavaWithJavacNote:SomeinputfilesuseoroverrideadeprecatedAPI.Note:Recompilewith-Xlint:deprecationfordetails.Note:Someinputfilesuseuncheckedorunsafeoperations.Note:Recompilewith-Xlint:

android - 强制 lint 检查确切语言的翻译

我收到这个错误:"preferences_default_reminder_labels"isnottranslatedincs,de,es,fr,it,ja,ko,nl,pl,pt,pt-rBR,zhIssue:ChecksforincompletetranslationswherenotallstringsaretranslatedId:MissingTranslation但我的应用程序只需要翻译成英文和俄文。我如何调整lint以仅检查en,ru翻译? 最佳答案 如果您在res中有名为values-XX的空文件夹,用于ru以外的

android - 使用新版本的 gradle android 插件检测未使用的资源误报

我之前使用的是1.2.3版本的androidpluginforgradle.我注意到,在更新1.3时,lint报告的未使用资源数量显着增加。经过一些分析后,我注意到其中大部分(如果不是全部)都是误报......有没有其他人注意到类似的行为?如果是这样,关于如何解决这个问题有什么建议吗? 最佳答案 将AndroidGradle插件更新到最新版本(例如1.5.0)。引用https://code.google.com/p/android/issues/detail?id=182555 关于an