@IntDef注解和其他不能被注解的代码的返回值,或者如何暂时禁止注解影响代码?
我正在使用 intdef "> intdef "> intdef 来自" noreferrer"> android支持注释在我的代码中所以请继续阅读:)这样: public class UiLockMode { @IntDef({DEFAULT, NONE, VISIBLE, TRANSPARENT}) @Retention(RetentionPolicy.SOURCE) public @interface AllowedValues {} public static final int DEFAULT = 0; public static final int NONE = 1; public static final int VISIBLE = 2; public static final int TRANSPARENT = 3; } 接下来,我得到了这样的其他方法: protect
0 2024-02-19
编程技术问答社区
为什么ContextThemeWrapper现在被限制在支持库组?
我开始使用ContextThemeWrapper动态地应用ImageButton>;基于答案对我的另一个问题,并回答了其他相似 问题. ContextThemeWrapper wrapper = new ContextThemeWrapper(getContext(), mStyleRes); mImageButton = new AppCompatImageButton(wrapper, null, 0); 但是最近开始出现ContextThemeWrapper构造函数上的棉布错误: ContextThemeWrapper只能从同一库中调用 group(groupId = com.android.support) 我注意到以@RestrictTo(LIBRARY_GROUP)注释标记的类,这导致棉布错误出现.但是我找不到有关为什么的任何信息,它仅限于com.android.support库组. 据我所知,这是将样式,主题或主题覆盖层应用于View的唯一方法;除了
Lint: 当使用变量时,"有较新的库版本"。
我有一个带有3个子项目的项目.我希望3个子项目使用相同的依赖项版本,因此我将根build.gradle中的所有版本计算出来: allprojects { ext.versions = [ supportLibVersion: '26.1.0', playServicesVersion: '11.2.2', retrofitVersion: '2.1.0', retrofitConverterGsonVersion: '2.1.0', retrofitRxjava2AdapterVersion: '1.0.0', rxjava2Version: '2.0.5', rxandroidVersion: '2.0.1', timberVersion: '4.5.1', ... ] } 现在,Lint不再突出显示新库了.它以某种方式仍然适用于su
0 2024-02-19
编程技术问答社区
如何在@ServiceName StringDef中添加自定义系统服务名称?
在我们的某些活动中,我们已经覆盖了getSystemService()方法来返回一些自定义服务名称的自定义对象.它对我们来说很好,将某些对象传递到此类活动深处的视图. 但是,在Android Studio中,我们会在获得我们自定义系统服务的行中获得一份LINT检查产生的错误: return (CustomService) context.getSystemService(SERVICE_NAME); 我知道lint使用@ServiceName getSystemService()上的注释,该注释是通过Context类中的@StringDef定义的.我想知道如何将此定义扩展到包括我们的自定义服务名称. 我不想每次使用自定义系统服务时都会进行此非常有用的检查或抑制此错误.这就是为什么我希望可以添加自定义名称以识别此调用是正确的. 解决方案 public class SomeClass{ public static final String SERVI
2 2024-02-18
编程技术问答社区
如何避免编译器警告 参数'x'从未使用过
建议在Android Studio中解决此类编译器警告的最佳方法3.3 注意:我找到了许多解决方案,以避免警告并取消选中工作室的检查.但是我期望有所不同. 示例: 如果警告参数'view1'从不使用在按钮onclick方法中. 方法 fun buttonClicked(view1: View) { // Call Intent to new Activity . // Parameter **view1** is not used } xml 的调用方法 . 因此
2 2024-02-18
编程技术问答社区
安卓系统将所有的lint警告设置为错误,某些警告除外
当引入不在lint-baseline.xml文件中的新的棉绒警告时,我正在尝试使我的连续集成失败.我想将所有的棉绒警告视为错误(因此构建已中止),但是我希望一种指定某些皮棉检查以将其视为信息或警告级别的方法t导致构建被中止. 这是我想做的基本上的一个示例(除了存在任何未登记的警告,构建都会失败): 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+棉制检查设置为错误级
0 2024-02-18
编程技术问答社区
如何在Android Studio中启用 "调用需要API级别21(当前最小为16)"的提示错误?
我有一种称为setImageTintList()的方法,需要min api为21.但是,如果我将min api设置为gradle中的16个,则该应用程序仍在毫无任何警告中构建. 尽管有一条红线说: setimagetIntl​​ist() - 呼叫需要API级别21(当前最小值为16) 它没有显示任何警告,错误或编译错误. 如何在Android Studio中设置棉绒警告级别,以使其错误并可能在这种情况下阻止构建? 解决方案 看来Android的Gradle插件棉布无法将无效的Android API称为错误. 但是您可以使用 gradle-animalsnimalsniffer-plugin 强>要实现相同.
0 2024-02-18
编程技术问答社区
lint.xml和检查配置文件的上下文
在Android Studio中有 lint.xml 配置和 ./indue/becsectprofiles/.xml 可通过 settings => editor => Inspections .我了解 lint.xml 由Lint命令行工具使用,并且检查配置文件由Android Studio IDE使用. . 官方文档是 这个答案有一个很好的例子 build.gradle中的lintoptions {} blove.gradle. 但是缺少一些信息. 规则的数字和名称是相同的吗? 是否有一种(简单的)将检查配置文件转换为 lint.xml 的方法,反之亦然? 它们是完全分开的还是将一个包含在另一个中的情况? 除了上面的案例(例如,对提交分析)外,执行了哪一个? 解决方案 我到目前为止可以总结我的研究. 1.)检查配置文件正在扩展lint.xml,因此lint.xml规则的数量小于检查配置文件规则的数量. 可以找到当前的lint.xml规则集在这里.
0 2024-02-18
编程技术问答社区
我们如何配置Android Studio在每次构建时运行其Lint?
曾经是一次,尤其是在Eclipse-Land中,棉绒将在每个构建上运行,因此,如果您失败了皮棉检查,您会立即发现.使用Android Studio(在1.3上进行了测试),LINT默认不在构建上运行.新来者可能会犯有毛刺检查的错误,但是由于棉绒实际上没有运行,新来者没有发现它们. (IOW,如果棉绒测试没有在森林中进行,是否真的有皮棉测试?) 评论此博客文章构建: 编辑项目配置 在配置的一般选项卡中,向下滚动并折叠打开"启动"面板 在该面板中,为您的模块添加一个名为lint的"运行gradle任务" 但是,这运行了命令行棉,从而导致用XML编写的报告和HTML到您的硬盘驱动器中.这有效,但是让Android Studio运行其内部棉绒检查会更加干净,因此结果显示在IDE面板中. 有没有办法设置项目构建以执行INE IN-IN-IN-PING检查? 奖励点如果可以将其设置为 运行棉绒,而不是通过Analys>"检查代码"完成的完整分析.虽然偶尔的分析
0 2024-02-18
编程技术问答社区
缺少对Firebase应用索引的支持(android lint)。
在分析Android Studios上的代码(分析>检查代码)时,我会收到此棉绒警告. Google搜索无法索引应用程序;考虑使用动作视图填充器添加至少一项活动.有关更多详细信息,请参见问题说明. 这是什么警告,如何通过Google搜索使我的应用程序可以索引? 对于SEO来说,这听起来很重要,但是我在Google上找不到任何细节. 我也喜欢知道如何访问Android Studio的"问题说明". 编辑: "应用程序无法通过Google搜索索引"是旧的警告.新警告是 "缺少对firebase应用程序索引的支持" 解决方案 我发现了如何访问"问题说明". 我需要悬停在检查错误上,以显示完整的问题说明内联(并按Ctrl-f1) 所以我缺少的关键字是"深链接"! 以下是Android开发人员页面进行深层链接"使Google能够抓取您的应用程序内容并允许用户从搜索结果中输入您的应用程序" .html 以下是有关如何执行深层链接的代码段.
0 2024-02-18
编程技术问答社区
编写自定义的lint警告以检查自定义的注释
我写了以下注释: import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.SOURCE) @Target({ElementType.METHOD}) public @interface Warning { } 旨在注释方法,如果不小心调用可能会导致问题.我在项目中添加了注释处理器,但这仅在Javac命令的日志输出中提供警告.我希望此警告出现在Android Studio中,并在其他任何地方都称呼该注释的方法.这就是为什么我试图编写自定义棉绒规则的原因.我有一根规则的基本骨架: import com.android.tools.lint.detector.
0 2024-02-18
编程技术问答社区
Lint: 如何忽略"<key>在<language>中没有翻译 "的错误?
我无法编译/调试我们的Android应用程序,因为本地化文件还不完美. 我的IDE的验证工具 NewCardsOrderVals未在AR,BG,CA,CS 中翻译 与蚂蚁一起编译/安装/运行良好的工作正常,但我想使用我的IDE轻松调试. 是否有一种方法可以关闭此特定检查,或者理想地将其引起警告而不是错误? 我知道,在发布之前,我们确实需要正确获取本地化文件,但是暂时不是优先事项,因为屏幕本身经常被修改. 解决方案 Android Studio: " file">"设置",然后在搜索框中键入"丢失转移" 日食: Windows/linux:在"窗口">" preverences">" android">"皮棉错误检查" 中 mac:" eclipse">" pereences">" android">"皮棉错误检查" 找到MissingTranslation行,并将其设置为Warning,如下所示: 其他解决方案 您可以在这
2 2024-02-18
编程技术问答社区
在构建android studio项目时运行lint
我希望在使用Android Studio构建项目以确保遵循棉绒规则时能够执行绒毛任务. . 我尝试使用任务依赖性,但没有运气.我的Teamcity Build Server使用了运行绒毛任务的构建任务,因此效果很好.但是,当我选择调试构建变体时,Android Studio似乎可以互换使用generateDebugSources和compileDebugJava. . 这是我在build.gradle中尝试的: assemble.dependsOn lint 解决方案 如果您只想配置Android Studio项目以在默认运行配置之前在不影响Gradle任务配置之前运行皮棉检查,则可以按照以下步骤进行操作. 打开运行配置下拉并选择编辑 选择您的应用程序运行配置 按"+"添加新步骤 选择" Gradle Aware Make" 键入'检查',然后选择使用您的应用模块名称的选项并检查. (我的是:app:check) 按UP箭头以在
2 2024-02-18
编程技术问答社区
如何解决android lint对导出的Firebase Messaging服务实现的投诉?
按照 Google开发人员在我的应用程序中实现Firebase的指令,,我注意到Android lint抱怨. 这个想法是,我们必须实施从firebase服务继承的两个服务: public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService { ... } public class MyFirebaseMessagingService extends FirebaseMessagingService { ... } ,然后在清单中注册这些服务.但是,这并不是很完美.特别是,这两个推荐的AndroidManifest.xml服务条目不包含任何特殊权限:
0 2024-02-18
编程技术问答社区
安卓库的安卓API级别注释
我正在写一个Android库. LBIRARY中绝大多数界面都支持Android API级别10或更高.但是,某些功能需要更高的API级别.例如,库的一部分需要API 18才能进行蓝牙低能. 为了具体,假设库会产生三个类ClassA,ClassB和ClassC. ClassA使用API​​ 10,ClassB中可用的功能使用API​​ 14和ClassC中可用的功能使用API​​ 18中可用的功能. 我希望能够触发棉布问题(警告/错误),每当有人使用我的库中的类而没有项目中所需的API级别(除非他们用适当的注释抑制警告),否则已内置的newapi问题. 搜索后,我找到了以下可能的解决方案: 1)此解决方案不符合棉的线:将库分为三个.jar文件,例如lib_10.jar,其中包括使用API​​ 10中可用功能的所有类(示例中的classa),lib_14.jar包括使用API​​ 14中可用功能的所有类(示例中的classB)和lib_18.jar,其中包括使用AP
0 2024-02-17
编程技术问答社区
xml资源中的警告
昨天,我再次安装了ADT插件,因为我遇到了问题(间歇性).问题是,我没有在所有XML资源中收到警告.我很敢于确定我以前从未看过它们.其中一些很烦人,因为我对此无能为力: Nested weights are bad for performance The resource R.attr.TextAppearance_Group_Small appears to be unused Replace "..." with ellipsis character (…, …)? 我必须修复的其他人包括: This tag and its children can be replaced by one and a compound drawable [Accessibility] Missing contentDescription attribute on image 有什么方法可以抑制这些警告?我们有一个零公差政策,不允许我们检查警告吗?
0 2024-02-17
编程技术问答社区
我如何停止抱怨未翻译的字符串?
是否可以指定values eRiveriy中文件中的字符串故意不被翻译成其他语言? 我有一堆字符串,这些字符串对于所有语言都是常见的,不需要翻译.我在values目录中创建了一个unlocalized-strings.xml文件.当我运行Android皮棉以检查问题时,它一直在说缺少某些翻译. 我不想在整个项目上禁用此检查.我想仅在某些XML文件中禁用它.这可能吗? 这是我遇到的错误: "title_widget_updater_service" is not translated in de, en, en-rUS, it Issue: Checks for incomplete translations where not all strings are translated Id: MissingTranslation If an application has more than one locale, then all the strings dec
4 2024-02-17
编程技术问答社区
Lint: 如何忽略"<key>在<language>中没有翻译 "的错误?
我无法编译/调试我们的Android应用程序,因为本地化文件还不完美. 我的IDE的验证工具 NewCardsOrderVals未在AR,BG,CA,CS 中翻译 与蚂蚁一起编译/安装/运行良好的工作正常,但我想使用我的IDE轻松调试. 是否有一种方法可以关闭此特定检查,或者理想地将其引起警告而不是错误? 我知道,在发布之前,我们确实需要正确获取本地化文件,但是暂时不是优先事项,因为屏幕本身经常被修改. 解决方案 Android Studio: " file">"设置",然后在搜索框中键入"丢失转移" 日食: Windows/linux:在"窗口">" preverences">" android">"皮棉错误检查" 中 mac:" eclipse">" pereences">" android">"皮棉错误检查" 找到MissingTranslation行,并将其设置为Warning,如下所示: 其他解决方案 您可以在这
0 2024-02-17
编程技术问答社区
Android Lint抱怨活动没有在AndroidManifest中注册,但它确实在注册。
当我在项目上运行Android lint时,我会收到以下警告: org.slaytanic.simlockednotifier.simlockednotifieractivity未注册在清单 中 问题:确保在清单中注册活动,服务和内容提供商 id:注册 使用和标签在AndroidManifext.xml文件中注册活动,服务和内容提供商. 如果您的活动只是一个父母类,旨在由其他"真实"活动串联,则将其作为抽象类. simlockednotifieractivity.java package org.slaytanic.SIMLockedRingNotifier; public class SIMLockedRingNotifierActivity extends Activity { [...] androidmanifest.xml
0 2024-02-16
编程技术问答社区
如果有新版本,安卓系统启用自定义库的警告
,如果库不使用最新版本,则在支持库的情况下,Android lint将显示警告.但是,当我创建自己的库并通过Bintray发布它时,使用旧版本时不会显示任何警告.是否有任何方法可以为自定义库启用此行为? 解决方案 您可以在Android Studio中进行以下操作. 设置>编辑>检查>"可用的新库版本" 这将引入有关您的gradle依赖性的棉绒检查.但是,请记住这可能会放缓您的编译时间.另一个选择是, 分析>"按名称运行检查">"可用的新库版本"
2 2024-02-16
编程技术问答社区