(#) Lint Issue Index
Order: [Alphabetical](index.md.html) | [By category](categories.md.html) | By vendor | [By severity](severity.md.html) | [By year](year.md.html) | [Libraries](libraries.md.html)
* Built In (480)
- [AaptCrash: Potential AAPT crash](AaptCrash.md.html)
- [AcceptsUserCertificates: Allowing User Certificates](AcceptsUserCertificates.md.html)
- [AccessibilityFocus: Forcing accessibility focus](AccessibilityFocus.md.html)
- [AccessibilityScrollActions: Incomplete Scroll Action support](AccessibilityScrollActions.md.html)
- [AccessibilityWindowStateChangedEvent: Use of accessibility window state change events](AccessibilityWindowStateChangedEvent.md.html)
- [AccidentalOctal: Accidental Octal](AccidentalOctal.md.html)
- [ActivityIconColor: Ongoing activity icon is not white](ActivityIconColor.md.html)
- [AdapterViewChildren: `AdapterView` cannot have children in XML](AdapterViewChildren.md.html)
- [AddJavascriptInterface: `addJavascriptInterface` Called](AddJavascriptInterface.md.html)
- [AllCaps: Combining textAllCaps and markup](AllCaps.md.html)
- [AllowAllHostnameVerifier: Insecure `HostnameVerifier`](AllowAllHostnameVerifier.md.html)
- [AlwaysShowAction: Usage of `showAsAction=always`](AlwaysShowAction.md.html)
- [AndroidGradlePluginVersion: Obsolete Android Gradle Plugin Version](AndroidGradlePluginVersion.md.html)
- [AnimatorKeep: Missing @Keep for Animated Properties](AnimatorKeep.md.html)
- [AnnotateVersionCheck: Annotate SDK_INT checks](AnnotateVersionCheck.md.html)
- [AnnotationProcessorOnCompilePath: Annotation Processor on Compile Classpath](AnnotationProcessorOnCompilePath.md.html)
- [AppBundleLocaleChanges: App Bundle handling of runtime locale changes](AppBundleLocaleChanges.md.html)
- [AppCompatCustomView: Appcompat Custom Widgets](AppCompatCustomView.md.html)
- [AppCompatMethod: Using Wrong AppCompat Method](AppCompatMethod.md.html)
- [AppCompatResource: Menu namespace](AppCompatResource.md.html)
- [AppIndexingService: App Indexing Background Services](AppIndexingService.md.html)
- [AppLinkSplitToWebAndCustom: Android App links should only use http(s) schemes](AppLinkSplitToWebAndCustom.md.html)
- [AppLinkUrlError: URI invalid](AppLinkUrlError.md.html)
- [AppLinkWarning: App Link warning](AppLinkWarning.md.html)
- [AppLinksAutoVerify: App Links Auto Verification Failure](AppLinksAutoVerify.md.html)
- [ApplySharedPref: Use `apply()` on `SharedPreferences`](ApplySharedPref.md.html)
- [AssertionSideEffect: Assertions with Side Effects](AssertionSideEffect.md.html)
- [AuthLeak: Code might contain an auth leak](AuthLeak.md.html)
- [Autofill: Use Autofill](Autofill.md.html)
- [BackButton: Back button](BackButton.md.html)
- [BadHostnameVerifier: Insecure HostnameVerifier](BadHostnameVerifier.md.html)
- [BatteryLife: Battery Life Issues](BatteryLife.md.html)
- [BidiSpoofing: Bidirectional text spoofing](BidiSpoofing.md.html)
- [BinderGetCallingInMainThread: Incorrect usage of getCallingUid() or getCallingPid()](BinderGetCallingInMainThread.md.html)
- [BlockedPrivateApi: Using Blocked Private API](BlockedPrivateApi.md.html)
- [BomWithoutPlatform: Using a BOM without platform call](BomWithoutPlatform.md.html)
- [BottomAppBar: BottomAppBar Problems](BottomAppBar.md.html)
- [BrokenIterator: Broken Iterator](BrokenIterator.md.html)
- [BuildListAdds: Missing `add` call in `buildList`](BuildListAdds.md.html)
- [ButtonCase: Cancel/OK dialog button capitalization](ButtonCase.md.html)
- [ButtonOrder: Button order](ButtonOrder.md.html)
- [ButtonStyle: Button should be borderless](ButtonStyle.md.html)
- [ByteOrderMark: Byte order mark inside files](ByteOrderMark.md.html)
- [CanvasSize: Wrong Canvas Size](CanvasSize.md.html)
- [CheckResult: Ignoring results](CheckResult.md.html)
- [ChildInNonViewGroup: Only view groups can have children](ChildInNonViewGroup.md.html)
- [ChromeOsAbiSupport: Missing ABI Support for ChromeOS](ChromeOsAbiSupport.md.html)
- [ChromeOsOnConfigurationChanged: Poor performance with APIs inside `onConfigurationChanged()`](ChromeOsOnConfigurationChanged.md.html)
- [ClickableViewAccessibility: Accessibility in Custom Views](ClickableViewAccessibility.md.html)
- [CoarseFineLocation: Cannot use `ACCESS_FINE_LOCATION` without `ACCESS_COARSE_LOCATION`](CoarseFineLocation.md.html)
- [CommitPrefEdits: Missing `commit()` on `SharedPreference` editor](CommitPrefEdits.md.html)
- [CommitTransaction: Missing `commit()` calls](CommitTransaction.md.html)
- [ConstantLocale: Constant Locale](ConstantLocale.md.html)
- [ContentDescription: Image without `contentDescription`](ContentDescription.md.html)
- [ConvertToWebp: Convert to WebP](ConvertToWebp.md.html)
- [CredManMissingDal: Missing Digital Asset Link for Credential Manager](CredManMissingDal.md.html)
- [CredentialDependency: `credentials-play-services-auth` is Required](CredentialDependency.md.html)
- [CredentialManagerMisuse: Misuse of Credential Manager API](CredentialManagerMisuse.md.html)
- [CredentialManagerSignInWithGoogle: Misuse of Sign in with Google API](CredentialManagerSignInWithGoogle.md.html)
- [CustomPermissionTypo: Permission appears to be a custom permission with a typo](CustomPermissionTypo.md.html)
- [CustomSplashScreen: Application-defined Launch Screen](CustomSplashScreen.md.html)
- [CustomViewStyleable: Mismatched Styleable/Custom View Name](CustomViewStyleable.md.html)
- [CustomX509TrustManager: Implements custom TLS trust manager](CustomX509TrustManager.md.html)
- [CutPasteId: Likely cut & paste mistakes](CutPasteId.md.html)
- [DalvikOverride: Method considered overridden by Dalvik](DalvikOverride.md.html)
- [DataBindingWithoutKapt: Data Binding without Annotation Processing](DataBindingWithoutKapt.md.html)
- [DataExtractionRules: Missing data extraction rules](DataExtractionRules.md.html)
- [DefaultEncoding: Using Default Character Encoding](DefaultEncoding.md.html)
- [DefaultLocale: Implied default locale in case conversion](DefaultLocale.md.html)
- [DeletedProvider: Using Deleted Provider](DeletedProvider.md.html)
- [Deprecated: Using deprecated resources](Deprecated.md.html)
- [DeprecatedProvider: Using BC Provider](DeprecatedProvider.md.html)
- [DeprecatedSinceApi: Using a method deprecated in earlier SDK](DeprecatedSinceApi.md.html)
- [DevModeObsolete: Dev Mode Obsolete](DevModeObsolete.md.html)
- [DeviceAdmin: Malformed Device Admin](DeviceAdmin.md.html)
- [DiffUtilEquals: Suspicious DiffUtil Equality](DiffUtilEquals.md.html)
- [DisableBaselineAlignment: Missing `baselineAligned` attribute](DisableBaselineAlignment.md.html)
- [DiscouragedApi: Using discouraged APIs](DiscouragedApi.md.html)
- [DiscouragedPrivateApi: Using Discouraged Private API](DiscouragedPrivateApi.md.html)
- [DrawAllocation: Memory allocations within drawing code](DrawAllocation.md.html)
- [DuplicateActivity: Activity registered more than once](DuplicateActivity.md.html)
- [DuplicateDefinition: Duplicate definitions of resources](DuplicateDefinition.md.html)
- [DuplicateDivider: Unnecessary Divider Copy](DuplicateDivider.md.html)
- [DuplicateIds: Duplicate ids within a single layout](DuplicateIds.md.html)
- [DuplicateIncludedIds: Duplicate ids across layouts combined with include tags](DuplicateIncludedIds.md.html)
- [DuplicatePlatformClasses: Duplicate Platform Classes](DuplicatePlatformClasses.md.html)
- [DuplicateStrings: Duplicate Strings](DuplicateStrings.md.html)
- [DuplicateUsesFeature: Feature declared more than once](DuplicateUsesFeature.md.html)
- [EasterEgg: Code contains easter egg](EasterEgg.md.html)
- [EditedTargetSdkVersion: Manually Edited TargetSdkVersion](EditedTargetSdkVersion.md.html)
- [EllipsizeMaxLines: Combining Ellipsize and Maxlines](EllipsizeMaxLines.md.html)
- [EmptySuperCall: Calling an empty super method](EmptySuperCall.md.html)
- [EnforceUTF8: Encoding used in resource files is not UTF-8](EnforceUTF8.md.html)
- [EnqueueWork: WorkManager Enqueue](EnqueueWork.md.html)
- [ExactAlarm: Invalid Usage of Exact Alarms](ExactAlarm.md.html)
- [ExifInterface: Using `android.media.ExifInterface`](ExifInterface.md.html)
- [ExpensiveAssertion: Expensive Assertions](ExpensiveAssertion.md.html)
- [ExpiredTargetSdkVersion: TargetSdkVersion No Longer Supported](ExpiredTargetSdkVersion.md.html)
- [ExpiringTargetSdkVersion: TargetSdkVersion Soon Expiring](ExpiringTargetSdkVersion.md.html)
- [ExportedContentProvider: Content provider does not require permission](ExportedContentProvider.md.html)
- [ExportedPreferenceActivity: PreferenceActivity should not be exported](ExportedPreferenceActivity.md.html)
- [ExportedReceiver: Receiver does not require permission](ExportedReceiver.md.html)
- [ExportedService: Exported service does not require permission](ExportedService.md.html)
- [ExtraText: Extraneous text in resource files](ExtraText.md.html)
- [ExtraTranslation: Extra translation](ExtraTranslation.md.html)
- [FileEndsWithExt: File endsWith on file extensions](FileEndsWithExt.md.html)
- [FindViewByIdCast: Add Explicit Cast](FindViewByIdCast.md.html)
- [FontValidation: Validation of font files](FontValidation.md.html)
- [ForegroundServicePermission: Missing permissions required by foregroundServiceType](ForegroundServicePermission.md.html)
- [ForegroundServiceType: Missing `foregroundServiceType` attribute in manifest](ForegroundServiceType.md.html)
- [FullBackupContent: Valid Full Backup Content File](FullBackupContent.md.html)
- [GestureBackNavigation: Usage of KeyEvent.KEYCODE_BACK](GestureBackNavigation.md.html)
- [GetContentDescriptionOverride: Overriding `getContentDescription()` on a View](GetContentDescriptionOverride.md.html)
- [GetInstance: Cipher.getInstance with ECB](GetInstance.md.html)
- [GetLocales: Locale crash](GetLocales.md.html)
- [GifUsage: Using `.gif` format for bitmaps is discouraged](GifUsage.md.html)
- [GradleCompatible: Incompatible Gradle Versions](GradleCompatible.md.html)
- [GradleDependency: Obsolete Gradle Dependency](GradleDependency.md.html)
- [GradleDeprecated: Deprecated Gradle Construct](GradleDeprecated.md.html)
- [GradleDeprecatedConfiguration: Deprecated Gradle Configuration](GradleDeprecatedConfiguration.md.html)
- [GradleDynamicVersion: Gradle Dynamic Version](GradleDynamicVersion.md.html)
- [GradleGetter: Gradle Implicit Getter Call](GradleGetter.md.html)
- [GradleIdeError: Gradle IDE Support Issues](GradleIdeError.md.html)
- [GradleOverrides: Value overridden by Gradle build script](GradleOverrides.md.html)
- [GradlePath: Gradle Path Issues](GradlePath.md.html)
- [GradlePluginVersion: Incompatible Android Gradle Plugin](GradlePluginVersion.md.html)
- [GrantAllUris: Content provider shares everything](GrantAllUris.md.html)
- [GridLayout: GridLayout validation](GridLayout.md.html)
- [HalfFloat: Incorrect Half Float](HalfFloat.md.html)
- [HandlerLeak: Handler reference leaks](HandlerLeak.md.html)
- [HardcodedDebugMode: Hardcoded value of `android:debuggable` in the manifest](HardcodedDebugMode.md.html)
- [HardcodedText: Hardcoded text](HardcodedText.md.html)
- [HardwareIds: Hardware Id Usage](HardwareIds.md.html)
- [HighAppVersionCode: VersionCode too high](HighAppVersionCode.md.html)
- [HighSamplingRate: High sensor sampling rate](HighSamplingRate.md.html)
- [IconColors: Icon colors do not follow the recommended visual style](IconColors.md.html)
- [IconDensities: Icon densities validation](IconDensities.md.html)
- [IconDipSize: Icon density-independent size validation](IconDipSize.md.html)
- [IconDuplicates: Duplicated icons under different names](IconDuplicates.md.html)
- [IconDuplicatesConfig: Identical bitmaps across various configurations](IconDuplicatesConfig.md.html)
- [IconExpectedSize: Icon has incorrect size](IconExpectedSize.md.html)
- [IconExtension: Icon format does not match the file extension](IconExtension.md.html)
- [IconLauncherShape: The launcher icon shape should use a distinct silhouette](IconLauncherShape.md.html)
- [IconLocation: Image defined in density-independent drawable folder](IconLocation.md.html)
- [IconMissingDensityFolder: Missing density folder](IconMissingDensityFolder.md.html)
- [IconMixedNinePatch: Clashing PNG and 9-PNG files](IconMixedNinePatch.md.html)
- [IconNoDpi: Icon appears in both `-nodpi` and dpi folders](IconNoDpi.md.html)
- [IconXmlAndPng: Icon is specified both as `.xml` file and as a bitmap](IconXmlAndPng.md.html)
- [IgnoreWithoutReason: @Ignore without Reason](IgnoreWithoutReason.md.html)
- [IllegalResourceRef: Name and version must be integer or string, not resource](IllegalResourceRef.md.html)
- [ImplicitSamInstance: Implicit SAM Instances](ImplicitSamInstance.md.html)
- [ImpliedQuantity: Implied Quantities](ImpliedQuantity.md.html)
- [ImpliedTouchscreenHardware: Touchscreen not optional](ImpliedTouchscreenHardware.md.html)
- [InOrMmUsage: Using `mm` or `in` dimensions](InOrMmUsage.md.html)
- [IncludeLayoutParam: Ignored layout params on include](IncludeLayoutParam.md.html)
- [IncompatibleMediaBrowserServiceCompatVersion: Obsolete version of MediaBrowserServiceCompat](IncompatibleMediaBrowserServiceCompatVersion.md.html)
- [InconsistentArrays: Inconsistencies in array element counts](InconsistentArrays.md.html)
- [InconsistentLayout: Inconsistent Layouts](InconsistentLayout.md.html)
- [InefficientWeight: Inefficient layout weight](InefficientWeight.md.html)
- [InflateParams: Layout Inflation without a Parent](InflateParams.md.html)
- [InlinedApi: Using inlined constants on older versions](InlinedApi.md.html)
- [InnerclassSeparator: Inner classes should use `$` rather than `.`](InnerclassSeparator.md.html)
- [InsecureBaseConfiguration: Insecure Base Configuration](InsecureBaseConfiguration.md.html)
- [InstantApps: Instant App Issues](InstantApps.md.html)
- [Instantiatable: Registered class is not instantiatable](Instantiatable.md.html)
- [IntentFilterExportedReceiver: Unspecified `android:exported` in manifest](IntentFilterExportedReceiver.md.html)
- [IntentFilterUniqueDataAttributes: Data tags should only declare unique attributes](IntentFilterUniqueDataAttributes.md.html)
- [IntentReset: Suspicious mix of `setType` and `setData`](IntentReset.md.html)
- [IntentWithNullActionLaunch: Unsafe intent launched with no action set](IntentWithNullActionLaunch.md.html)
- [InternalInsetResource: Using internal inset dimension resource](InternalInsetResource.md.html)
- [InvalidAnalyticsName: Invalid Analytics Name](InvalidAnalyticsName.md.html)
- [InvalidId: Invalid ID declaration](InvalidId.md.html)
- [InvalidImeActionId: Invalid imeActionId declaration](InvalidImeActionId.md.html)
- [InvalidNavigation: No start destination specified](InvalidNavigation.md.html)
- [InvalidPackage: Package not included in Android](InvalidPackage.md.html)
- [InvalidPermission: Invalid Permission Attribute](InvalidPermission.md.html)
- [InvalidResourceFolder: Invalid Resource Folder](InvalidResourceFolder.md.html)
- [InvalidUsesTagAttribute: Invalid `name` attribute for `uses` element](InvalidUsesTagAttribute.md.html)
- [InvalidVectorPath: Invalid vector paths](InvalidVectorPath.md.html)
- [InvalidWakeLockTag: Invalid Wake Lock Tag](InvalidWakeLockTag.md.html)
- [InvalidWearFeatureAttribute: Invalid attribute for Wear uses-feature](InvalidWearFeatureAttribute.md.html)
- [JavaPluginLanguageLevel: No Explicit Java Language Level Given](JavaPluginLanguageLevel.md.html)
- [JavascriptInterface: Missing @JavascriptInterface on methods](JavascriptInterface.md.html)
- [JcenterRepositoryObsolete: JCenter Maven repository is read-only](JcenterRepositoryObsolete.md.html)
- [JobSchedulerService: JobScheduler problems](JobSchedulerService.md.html)
- [KaptUsageInsteadOfKsp: Kapt usage should be replaced with KSP](KaptUsageInsteadOfKsp.md.html)
- [KeyboardInaccessibleWidget: Keyboard inaccessible widget](KeyboardInaccessibleWidget.md.html)
- [KnownPermissionError: Value specified for permission is a known error](KnownPermissionError.md.html)
- [KotlinNullnessAnnotation: Kotlin nullability annotation](KotlinNullnessAnnotation.md.html)
- [KotlinPropertyAccess: Kotlin Property Access](KotlinPropertyAccess.md.html)
- [KotlincFE10: Avoid using old K1 Kotlin compiler APIs](KotlincFE10.md.html)
- [KtxExtensionAvailable: KTX Extension Available](KtxExtensionAvailable.md.html)
- [LabelFor: Missing accessibility label](LabelFor.md.html)
- [LambdaLast: Lambda Parameters Last](LambdaLast.md.html)
- [LaunchActivityFromNotification: Notification Launches Services or BroadcastReceivers](LaunchActivityFromNotification.md.html)
- [LeanbackUsesWifi: Using android.hardware.wifi on TV](LeanbackUsesWifi.md.html)
- [LibraryCustomView: Custom views in libraries should use res-auto-namespace](LibraryCustomView.md.html)
- [LifecycleAnnotationProcessorWithJava8: Lifecycle Annotation Processor with Java 8 Compile Option](LifecycleAnnotationProcessorWithJava8.md.html)
- [LintDocExample: Missing Documentation Example](LintDocExample.md.html)
- [LintImplBadUrl: Bad More Info Link](LintImplBadUrl.md.html)
- [LintImplDollarEscapes: Using Dollar Escapes](LintImplDollarEscapes.md.html)
- [LintImplIdFormat: Lint ID Format](LintImplIdFormat.md.html)
- [LintImplPsiEquals: Comparing PsiElements with Equals](LintImplPsiEquals.md.html)
- [LintImplTextFormat: Lint Text Format](LintImplTextFormat.md.html)
- [LintImplTrimIndent: Calling `.trimIndent` on Lint Strings](LintImplTrimIndent.md.html)
- [LintImplUnexpectedDomain: Unexpected URL Domain](LintImplUnexpectedDomain.md.html)
- [LintImplUseKotlin: Non-Kotlin Lint Detectors](LintImplUseKotlin.md.html)
- [LintImplUseUast: Using Wrong UAST Method](LintImplUseUast.md.html)
- [LocalSuppress: @SuppressLint on invalid element](LocalSuppress.md.html)
- [LocaleFolder: Wrong locale name](LocaleFolder.md.html)
- [LockedOrientationActivity: Incompatible screenOrientation value](LockedOrientationActivity.md.html)
- [LogConditional: Unconditional Logging Calls](LogConditional.md.html)
- [LogTagMismatch: Mismatched Log Tags](LogTagMismatch.md.html)
- [LongLogTag: Too Long Log Tags](LongLogTag.md.html)
- [MangledCRLF: Mangled file line endings](MangledCRLF.md.html)
- [ManifestOrder: Incorrect order of elements in manifest](ManifestOrder.md.html)
- [ManifestResource: Manifest Resource References](ManifestResource.md.html)
- [ManifestTypo: Typos in manifest tags](ManifestTypo.md.html)
- [MenuTitle: Missing menu title](MenuTitle.md.html)
- [MergeMarker: Code contains merge marker](MergeMarker.md.html)
- [MergeRootFrame: FrameLayout can be replaced with `` tag](MergeRootFrame.md.html)
- [MinSdkTooLow: API Version Too Low](MinSdkTooLow.md.html)
- [MipmapIcons: Use Mipmap Launcher Icons](MipmapIcons.md.html)
- [MissingApplicationIcon: Missing application icon](MissingApplicationIcon.md.html)
- [MissingBackupPin: Missing Backup Pin](MissingBackupPin.md.html)
- [MissingClass: Missing registered class](MissingClass.md.html)
- [MissingConstraints: Missing Constraints in ConstraintLayout](MissingConstraints.md.html)
- [MissingDefaultResource: Missing Default](MissingDefaultResource.md.html)
- [MissingFirebaseInstanceTokenRefresh: Missing Firebase Messaging Callback](MissingFirebaseInstanceTokenRefresh.md.html)
- [MissingId: Fragments should specify an `id` or `tag`](MissingId.md.html)
- [MissingInflatedId: ID not found in inflated resource](MissingInflatedId.md.html)
- [MissingIntentFilterForMediaSearch: Missing MEDIA_PLAY_FROM_SEARCH intent-filter](MissingIntentFilterForMediaSearch.md.html)
- [MissingLeanbackLauncher: Missing Leanback Launcher Intent Filter](MissingLeanbackLauncher.md.html)
- [MissingLeanbackSupport: Missing Leanback Support](MissingLeanbackSupport.md.html)
- [MissingMediaBrowserServiceIntentFilter: Missing MediaBrowserService intent-filter](MissingMediaBrowserServiceIntentFilter.md.html)
- [MissingOnPlayFromSearch: Missing `onPlayFromSearch`](MissingOnPlayFromSearch.md.html)
- [MissingPermission: Missing Permissions](MissingPermission.md.html)
- [MissingPrefix: Missing Android XML namespace](MissingPrefix.md.html)
- [MissingQuantity: Missing quantity translation](MissingQuantity.md.html)
- [MissingSuperCall: Missing Super Call](MissingSuperCall.md.html)
- [MissingTranslation: Incomplete translation](MissingTranslation.md.html)
- [MissingTvBanner: TV Missing Banner](MissingTvBanner.md.html)
- [MissingVersion: Missing application name/version](MissingVersion.md.html)
- [MockLocation: Using mock location provider in production](MockLocation.md.html)
- [MonochromeLauncherIcon: Monochrome icon is not defined](MonochromeLauncherIcon.md.html)
- [MotionLayoutInvalidSceneFileReference: layoutDescription must specify a scene file](MotionLayoutInvalidSceneFileReference.md.html)
- [MotionLayoutMissingId: Views inside `MotionLayout` require an `android:id`](MotionLayoutMissingId.md.html)
- [MotionSceneFileValidationError: Validation errors in `MotionScene` files](MotionSceneFileValidationError.md.html)
- [MultipleUsesSdk: Multiple `` elements in the manifest](MultipleUsesSdk.md.html)
- [MutableImplicitPendingIntent: Mutable Implicit PendingIntent is disallowed](MutableImplicitPendingIntent.md.html)
- [MutatingSharedPrefs: Mutating an Immutable SharedPrefs Set](MutatingSharedPrefs.md.html)
- [NamespaceTypo: Misspelled namespace declaration](NamespaceTypo.md.html)
- [NegativeMargin: Negative Margins](NegativeMargin.md.html)
- [NestedScrolling: Nested scrolling widgets](NestedScrolling.md.html)
- [NestedWeights: Nested layout weights](NestedWeights.md.html)
- [NetworkSecurityConfig: Valid Network Security Config File](NetworkSecurityConfig.md.html)
- [NewApi: Calling new methods on older versions](NewApi.md.html)
- [NewerVersionAvailable: Newer Library Versions Available](NewerVersionAvailable.md.html)
- [NfcTechWhitespace: Whitespace in NFC tech lists](NfcTechWhitespace.md.html)
- [NoHardKeywords: No Hard Kotlin Keywords](NoHardKeywords.md.html)
- [NoOp: NoOp Code](NoOp.md.html)
- [NonConstantResourceId: Checks use of resource IDs in places requiring constants](NonConstantResourceId.md.html)
- [NonResizeableActivity: Activity is set to be non-resizeable](NonResizeableActivity.md.html)
- [NotConstructor: Not a Constructor](NotConstructor.md.html)
- [NotInterpolated: Incorrect Interpolation](NotInterpolated.md.html)
- [NotSibling: Invalid Constraints](NotSibling.md.html)
- [NotificationIconCompatibility: Notification Icon Compatibility](NotificationIconCompatibility.md.html)
- [NotificationId0: Notification Id is 0](NotificationId0.md.html)
- [NotificationPermission: Notifications Without Permission](NotificationPermission.md.html)
- [NotificationTrampoline: Notification Trampolines](NotificationTrampoline.md.html)
- [NotifyDataSetChanged: Invalidating All RecyclerView Data](NotifyDataSetChanged.md.html)
- [ObjectAnimatorBinding: Incorrect ObjectAnimator Property](ObjectAnimatorBinding.md.html)
- [ObsoleteLayoutParam: Obsolete layout params](ObsoleteLayoutParam.md.html)
- [ObsoleteSdkInt: Obsolete SDK_INT Version Check](ObsoleteSdkInt.md.html)
- [OldTargetApi: Target SDK attribute is not targeting latest version](OldTargetApi.md.html)
- [OnClick: `onClick` method does not exist](OnClick.md.html)
- [OpenForTesting: Extending API only allowed from tests](OpenForTesting.md.html)
- [Orientation: Missing explicit orientation](Orientation.md.html)
- [OutdatedLibrary: Outdated Library](OutdatedLibrary.md.html)
- [Overdraw: Overdraw: Painting regions more than once](Overdraw.md.html)
- [OverrideAbstract: Not overriding abstract methods on older platforms](OverrideAbstract.md.html)
- [PackagedPrivateKey: Packaged private key](PackagedPrivateKey.md.html)
- [ParcelClassLoader: Default Parcel Class Loader](ParcelClassLoader.md.html)
- [ParcelCreator: Missing Parcelable `CREATOR` field](ParcelCreator.md.html)
- [PendingBindings: Missing Pending Bindings](PendingBindings.md.html)
- [PermissionImpliesUnsupportedChromeOsHardware: Permission Implies Unsupported Chrome OS Hardware](PermissionImpliesUnsupportedChromeOsHardware.md.html)
- [PermissionImpliesUnsupportedHardware: Permission Implies Unsupported Hardware](PermissionImpliesUnsupportedHardware.md.html)
- [PermissionNamingConvention: Permission name does not follow recommended convention](PermissionNamingConvention.md.html)
- [PictureInPictureIssue: Picture In Picture best practices not followed](PictureInPictureIssue.md.html)
- [PinSetExpiry: Validate `` expiration attribute](PinSetExpiry.md.html)
- [PlaySdkIndexGenericIssues: Library has issues in SDK Index](PlaySdkIndexGenericIssues.md.html)
- [PlaySdkIndexNonCompliant: Library has policy issues in SDK Index](PlaySdkIndexNonCompliant.md.html)
- [PlaySdkIndexVulnerability: Library has vulnerability issues in SDK Index](PlaySdkIndexVulnerability.md.html)
- [PluralsCandidate: Potential Plurals](PluralsCandidate.md.html)
- [PrivateApi: Using Private APIs](PrivateApi.md.html)
- [PrivateResource: Using private resources](PrivateResource.md.html)
- [Proguard: Using obsolete ProGuard configuration](Proguard.md.html)
- [ProguardSplit: Proguard.cfg file contains generic Android rules](ProguardSplit.md.html)
- [PropertyEscape: Incorrect property escapes](PropertyEscape.md.html)
- [ProtectedPermissions: Using system app permission](ProtectedPermissions.md.html)
- [ProviderReadPermissionOnly: Provider with readPermission only and implemented write APIs](ProviderReadPermissionOnly.md.html)
- [ProxyPassword: Proxy Password in Cleartext](ProxyPassword.md.html)
- [PublicKeyCredential: Creating public key credential](PublicKeyCredential.md.html)
- [PxUsage: Using 'px' dimension](PxUsage.md.html)
- [QueryAllPackagesPermission: Using the QUERY_ALL_PACKAGES permission](QueryAllPackagesPermission.md.html)
- [QueryPermissionsNeeded: Using APIs affected by query permissions](QueryPermissionsNeeded.md.html)
- [Range: Outside Range](Range.md.html)
- [Recycle: Missing `recycle()` calls](Recycle.md.html)
- [RecyclerView: RecyclerView Problems](RecyclerView.md.html)
- [RedundantLabel: Redundant label on activity](RedundantLabel.md.html)
- [RedundantNamespace: Redundant namespace](RedundantNamespace.md.html)
- [ReferenceType: Incorrect reference types](ReferenceType.md.html)
- [Registered: Class is not registered in the manifest](Registered.md.html)
- [RelativeOverlap: Overlapping items in RelativeLayout](RelativeOverlap.md.html)
- [RemoteViewLayout: Unsupported View in RemoteView](RemoteViewLayout.md.html)
- [ReportShortcutUsage: Report shortcut usage](ReportShortcutUsage.md.html)
- [RequiredSize: Missing `layout_width` or `layout_height` attributes](RequiredSize.md.html)
- [RequiresFeature: Requires Feature](RequiresFeature.md.html)
- [ResAuto: Hardcoded Package in Namespace](ResAuto.md.html)
- [ReservedSystemPermission: Permission name is a reserved Android permission](ReservedSystemPermission.md.html)
- [ResourceAsColor: Should pass resolved color instead of resource id](ResourceAsColor.md.html)
- [ResourceCycle: Cycle in resource definitions](ResourceCycle.md.html)
- [ResourceName: Resource with Wrong Prefix](ResourceName.md.html)
- [ResourceType: Wrong Resource Type](ResourceType.md.html)
- [RestrictedApi: Restricted API](RestrictedApi.md.html)
- [ReturnThis: Method must return `this`](ReturnThis.md.html)
- [RiskyLibrary: Libraries with Privacy or Security Risks](RiskyLibrary.md.html)
- [RtlCompat: Right-to-left text compatibility issues](RtlCompat.md.html)
- [RtlEnabled: Using RTL attributes without enabling RTL support](RtlEnabled.md.html)
- [RtlHardcoded: Using left/right instead of start/end attributes](RtlHardcoded.md.html)
- [RtlSymmetry: Padding and margin symmetry](RtlSymmetry.md.html)
- [SQLiteString: Using STRING instead of TEXT](SQLiteString.md.html)
- [SSLCertificateSocketFactoryCreateSocket: Insecure call to `SSLCertificateSocketFactory.createSocket()`](SSLCertificateSocketFactoryCreateSocket.md.html)
- [SSLCertificateSocketFactoryGetInsecure: Call to `SSLCertificateSocketFactory.getInsecure()`](SSLCertificateSocketFactoryGetInsecure.md.html)
- [ScheduleExactAlarm: Scheduling Exact Alarms Without Required Permission](ScheduleExactAlarm.md.html)
- [ScopedStorage: Affected by scoped storage](ScopedStorage.md.html)
- [ScrollViewCount: `ScrollView` can have only one child](ScrollViewCount.md.html)
- [ScrollViewSize: ScrollView size validation](ScrollViewSize.md.html)
- [SdCardPath: Hardcoded reference to `/sdcard`](SdCardPath.md.html)
- [SecretInSource: Secret in source code](SecretInSource.md.html)
- [SecureRandom: Using a fixed seed with `SecureRandom`](SecureRandom.md.html)
- [SelectableText: Dynamic text should probably be selectable](SelectableText.md.html)
- [SelectedPhotoAccess: Behavior change when requesting photo library access](SelectedPhotoAccess.md.html)
- [ServiceCast: Wrong system service casts](ServiceCast.md.html)
- [SetAndClearCommunicationDevice: Clearing communication device](SetAndClearCommunicationDevice.md.html)
- [SetJavaScriptEnabled: Using `setJavaScriptEnabled`](SetJavaScriptEnabled.md.html)
- [SetTextI18n: TextView Internationalization](SetTextI18n.md.html)
- [SetWorldReadable: `File.setReadable()` used to make file world-readable](SetWorldReadable.md.html)
- [SetWorldWritable: `File.setWritable()` used to make file world-writable](SetWorldWritable.md.html)
- [ShiftFlags: Dangerous Flag Constant Declaration](ShiftFlags.md.html)
- [ShortAlarm: Short or Frequent Alarm](ShortAlarm.md.html)
- [ShowToast: Toast created but not shown](ShowToast.md.html)
- [SignatureOrSystemPermissions: Declaring signatureOrSystem permissions](SignatureOrSystemPermissions.md.html)
- [SimilarGradleDependency: Multiple Versions Gradle Dependency](SimilarGradleDependency.md.html)
- [SimpleDateFormat: Implied locale in date format](SimpleDateFormat.md.html)
- [Slices: Slices](Slices.md.html)
- [SmallSp: Text size is too small](SmallSp.md.html)
- [SoonBlockedPrivateApi: Using Soon-to-Be Blocked Private API](SoonBlockedPrivateApi.md.html)
- [SourceLockedOrientationActivity: Incompatible setRequestedOrientation value](SourceLockedOrientationActivity.md.html)
- [SpUsage: Using `dp` instead of `sp` for text sizes](SpUsage.md.html)
- [SquareAndRoundTilePreviews: TileProvider does not have round and square previews](SquareAndRoundTilePreviews.md.html)
- [StartActivityAndCollapseDeprecated: TileService.startActivityAndCollapse(Intent) is deprecated](StartActivityAndCollapseDeprecated.md.html)
- [StateListReachable: Unreachable state in a ``](StateListReachable.md.html)
- [StaticFieldLeak: Static Field Leaks](StaticFieldLeak.md.html)
- [StopShip: Code contains `STOPSHIP` marker](StopShip.md.html)
- [StringEscaping: Invalid string escapes](StringEscaping.md.html)
- [StringFormatCount: Formatting argument types incomplete or inconsistent](StringFormatCount.md.html)
- [StringFormatInvalid: Invalid format string](StringFormatInvalid.md.html)
- [StringFormatMatches: `String.format` string doesn't match the XML format string](StringFormatMatches.md.html)
- [StringFormatTrivial: `String.format` string only contains trivial conversions](StringFormatTrivial.md.html)
- [StringShouldBeInt: String should be int](StringShouldBeInt.md.html)
- [SupportAnnotationUsage: Incorrect support annotation usage](SupportAnnotationUsage.md.html)
- [Suspicious0dp: Suspicious 0dp dimension](Suspicious0dp.md.html)
- [SuspiciousImport: '`import android.R`' statement](SuspiciousImport.md.html)
- [SuspiciousIndentation: Suspicious indentation](SuspiciousIndentation.md.html)
- [SwitchIntDef: Missing @IntDef in Switch](SwitchIntDef.md.html)
- [SyntheticAccessor: Synthetic Accessor](SyntheticAccessor.md.html)
- [SystemPermissionTypo: Permission appears to be a standard permission with a typo](SystemPermissionTypo.md.html)
- [TestAppLink: Unmatched URLs](TestAppLink.md.html)
- [TextFields: Missing `inputType`](TextFields.md.html)
- [TextViewEdits: TextView should probably be an EditText instead](TextViewEdits.md.html)
- [TilePreviewImageFormat: Tile preview is not compliant with standards](TilePreviewImageFormat.md.html)
- [TileProviderPermissions: TileProvider does not set permission](TileProviderPermissions.md.html)
- [TooDeepLayout: Layout hierarchy is too deep](TooDeepLayout.md.html)
- [TooManyViews: Layout has too many views](TooManyViews.md.html)
- [TranslucentOrientation: Mixing screenOrientation and translucency](TranslucentOrientation.md.html)
- [TrulyRandom: Weak RNG](TrulyRandom.md.html)
- [TrustAllX509TrustManager: Insecure TLS/SSL trust manager](TrustAllX509TrustManager.md.html)
- [TypographyDashes: Hyphen can be replaced with dash](TypographyDashes.md.html)
- [TypographyEllipsis: Ellipsis string can be replaced with ellipsis character](TypographyEllipsis.md.html)
- [TypographyFractions: Fraction string can be replaced with fraction character](TypographyFractions.md.html)
- [TypographyOther: Other typographical problems](TypographyOther.md.html)
- [TypographyQuotes: Straight quotes can be replaced with curvy quotes, and apostrophes with typographic apostrophes](TypographyQuotes.md.html)
- [Typos: Spelling error](Typos.md.html)
- [UastImplementation: Avoid using UAST implementation](UastImplementation.md.html)
- [UnclosedTrace: Incorrect trace section usage](UnclosedTrace.md.html)
- [UniqueConstants: Overlapping Enumeration Constants](UniqueConstants.md.html)
- [UniquePermission: Permission names are not unique](UniquePermission.md.html)
- [UnknownId: Reference to an unknown id](UnknownId.md.html)
- [UnknownIdInLayout: Reference to an id that is not in the current layout](UnknownIdInLayout.md.html)
- [UnknownNullness: Unknown nullness](UnknownNullness.md.html)
- [UnlocalizedSms: SMS phone number missing country code](UnlocalizedSms.md.html)
- [UnnecessaryRequiredFeature: Potentially unnecessary required feature](UnnecessaryRequiredFeature.md.html)
- [UnprotectedSMSBroadcastReceiver: Unprotected SMS `BroadcastReceiver`](UnprotectedSMSBroadcastReceiver.md.html)
- [UnsafeDynamicallyLoadedCode: `load` used to dynamically load code](UnsafeDynamicallyLoadedCode.md.html)
- [UnsafeImplicitIntentLaunch: Implicit intent matches an internal non-exported component](UnsafeImplicitIntentLaunch.md.html)
- [UnsafeIntentLaunch: Launched Unsafe Intent](UnsafeIntentLaunch.md.html)
- [UnsafeNativeCodeLocation: Native code outside library directory](UnsafeNativeCodeLocation.md.html)
- [UnsafeProtectedBroadcastReceiver: Unsafe Protected `BroadcastReceiver`](UnsafeProtectedBroadcastReceiver.md.html)
- [UnsanitizedFilenameFromContentProvider: Trusting ContentProvider filenames without any sanitization](UnsanitizedFilenameFromContentProvider.md.html)
- [UnspecifiedImmutableFlag: Missing `PendingIntent` mutability flag](UnspecifiedImmutableFlag.md.html)
- [UnspecifiedRegisterReceiverFlag: Missing `registerReceiver()` exported flag](UnspecifiedRegisterReceiverFlag.md.html)
- [UnsupportedChromeOsCameraSystemFeature: Looking for Rear Camera only feature](UnsupportedChromeOsCameraSystemFeature.md.html)
- [UnsupportedChromeOsHardware: Unsupported Chrome OS Hardware Feature](UnsupportedChromeOsHardware.md.html)
- [UnsupportedTvHardware: Unsupported TV Hardware Feature](UnsupportedTvHardware.md.html)
- [Untranslatable: Translated Untranslatable](Untranslatable.md.html)
- [UnusedAttribute: Attribute unused on older versions](UnusedAttribute.md.html)
- [UnusedIds: Unused id](UnusedIds.md.html)
- [UnusedNamespace: Unused namespace](UnusedNamespace.md.html)
- [UnusedQuantity: Unused quantity translations](UnusedQuantity.md.html)
- [UnusedResources: Unused resources](UnusedResources.md.html)
- [UnusedTranslation: Unused Translation](UnusedTranslation.md.html)
- [UsableSpace: Using getUsableSpace()](UsableSpace.md.html)
- [UseAlpha2: Using 3-letter Codes](UseAlpha2.md.html)
- [UseCheckPermission: Using the result of check permission calls](UseCheckPermission.md.html)
- [UseCompoundDrawables: Node can be replaced by a `TextView` with compound drawables](UseCompoundDrawables.md.html)
- [UseOfBundledGooglePlayServices: Use of bundled version of Google Play services](UseOfBundledGooglePlayServices.md.html)
- [UseSdkSuppress: Using `@SdkSuppress` instead of `@RequiresApi`](UseSdkSuppress.md.html)
- [UseSparseArrays: HashMap can be replaced with SparseArray](UseSparseArrays.md.html)
- [UseTomlInstead: Use TOML Version Catalog Instead](UseTomlInstead.md.html)
- [UseValueOf: Should use `valueOf` instead of `new`](UseValueOf.md.html)
- [UselessLeaf: Unnecessary leaf layout](UselessLeaf.md.html)
- [UselessParent: Unnecessary parent layout](UselessParent.md.html)
- [UsingC2DM: Using C2DM](UsingC2DM.md.html)
- [UsingHttp: Using HTTP instead of HTTPS](UsingHttp.md.html)
- [ValidActionsXml: Invalid Action Descriptor](ValidActionsXml.md.html)
- [ValidFragment: Fragment not instantiatable](ValidFragment.md.html)
- [ValidRestrictions: Invalid Restrictions Descriptor](ValidRestrictions.md.html)
- [VectorDrawableCompat: Using VectorDrawableCompat](VectorDrawableCompat.md.html)
- [VectorPath: Long vector paths](VectorPath.md.html)
- [VectorRaster: Vector Image Generation](VectorRaster.md.html)
- [ViewBindingType: `tools:viewBindingType` issues](ViewBindingType.md.html)
- [ViewConstructor: Missing View constructors for XML inflation](ViewConstructor.md.html)
- [ViewHolder: View Holder Candidates](ViewHolder.md.html)
- [VisibleForTests: Visible Only For Tests](VisibleForTests.md.html)
- [VulnerableCordovaVersion: Vulnerable Cordova Version](VulnerableCordovaVersion.md.html)
- [Wakelock: Incorrect `WakeLock` usage](Wakelock.md.html)
- [WakelockTimeout: Using wakeLock without timeout](WakelockTimeout.md.html)
- [WatchFaceEditor: Watch face editor must use launchMode="standard"](WatchFaceEditor.md.html)
- [WatchFaceForAndroidX: AndroidX watch faces must use action `WATCH_FACE_EDITOR`](WatchFaceForAndroidX.md.html)
- [WearBackNavigation: Wear: Disabling Back navigation](WearBackNavigation.md.html)
- [WearMaterialTheme: Using not non-Wear `MaterialTheme` in a Wear OS project](WearMaterialTheme.md.html)
- [WearPasswordInput: Wear: Using password input](WearPasswordInput.md.html)
- [WearRecents: Wear OS: Recents and app resume](WearRecents.md.html)
- [WearSplashScreen: Wear: Use `SplashScreen` library](WearSplashScreen.md.html)
- [WearStandaloneAppFlag: Invalid or missing Wear standalone app flag](WearStandaloneAppFlag.md.html)
- [WearableActionDuplicate: Duplicate watch face configuration activities found](WearableActionDuplicate.md.html)
- [WearableBindListener: Usage of Android Wear BIND_LISTENER is deprecated](WearableBindListener.md.html)
- [WearableConfigurationAction: Wear configuration action metadata must match an activity](WearableConfigurationAction.md.html)
- [WebViewApiAvailability: WebView API Availability](WebViewApiAvailability.md.html)
- [WebViewClientOnReceivedSslError: Proceeds with the HTTPS connection despite SSL errors](WebViewClientOnReceivedSslError.md.html)
- [WebViewLayout: WebViews in wrap_content parents](WebViewLayout.md.html)
- [WebpUnsupported: WebP Unsupported](WebpUnsupported.md.html)
- [WeekBasedYear: Week Based Year](WeekBasedYear.md.html)
- [WifiManagerLeak: WifiManager Leak](WifiManagerLeak.md.html)
- [WifiManagerPotentialLeak: WifiManager Potential Leak](WifiManagerPotentialLeak.md.html)
- [WorldReadableFiles: `openFileOutput()` with `MODE_WORLD_READABLE`](WorldReadableFiles.md.html)
- [WorldWriteableFiles: `openFileOutput()` with `MODE_WORLD_WRITEABLE`](WorldWriteableFiles.md.html)
- [WrongCall: Using wrong draw/layout method](WrongCall.md.html)
- [WrongCase: Wrong case for view tag](WrongCase.md.html)
- [WrongCommentType: Wrong Comment Type](WrongCommentType.md.html)
- [WrongConstant: Incorrect constant](WrongConstant.md.html)
- [WrongFolder: Resource file in the wrong `res` folder](WrongFolder.md.html)
- [WrongManifestParent: Wrong manifest parent](WrongManifestParent.md.html)
- [WrongRegion: Suspicious Language/Region Combination](WrongRegion.md.html)
- [WrongSdkInt: Mismatched SDK_INT or SDK_INT_FULL](WrongSdkInt.md.html)
- [WrongThread: Wrong Thread](WrongThread.md.html)
- [WrongThreadInterprocedural: Wrong Thread (Interprocedural)](WrongThreadInterprocedural.md.html)
- [WrongViewCast: Mismatched view type](WrongViewCast.md.html)
- [XmlEscapeNeeded: Missing XML Escape](XmlEscapeNeeded.md.html)
* Android Open Source Project (androidx.activity) (2)
- [InvalidFragmentVersionForActivityResult: Update to Fragment 1.3.0 to use ActivityResult APIs](InvalidFragmentVersionForActivityResult.md.html)
- [InvalidUseOfOnBackPressed: Do not call onBackPressed() within OnBackPressedDisptacher](InvalidUseOfOnBackPressed.md.html)
* Android Open Source Project (androidx.annotation.experimental) (4)
- [ExperimentalAnnotationRetention: Experimental annotation with incorrect retention](ExperimentalAnnotationRetention.md.html)
- [UnsafeOptInUsageError: Unsafe opt-in usage intended to be error-level severity](UnsafeOptInUsageError.md.html)
- [UnsafeOptInUsageWarning: Unsafe opt-in usage intended to be warning-level severity](UnsafeOptInUsageWarning.md.html)
- [WrongRequiresOptIn: Experimental annotations defined in Kotlin must use kotlin.RequiresOptIn](WrongRequiresOptIn.md.html)
* Android Open Source Project (androidx.appcompat) (10)
- [UseAndroidAlpha: `android:alpha` attribute missing on `ColorStateList`](UseAndroidAlpha.md.html)
- [UseAppTint: `app:tint` attribute should be used on `ImageView` and `ImageButton`](UseAppTint.md.html)
- [UseCompatLoadingForColorStateLists: Should not call `Resources.getColorStateList` directly](UseCompatLoadingForColorStateLists.md.html)
- [UseCompatLoadingForDrawables: Should not call `Context.getDrawable` or `Resources.getDrawable` directly](UseCompatLoadingForDrawables.md.html)
- [UseCompatTextViewDrawableApis: Should not call `TextView.setCompoundDrawableTintList` or `TextView.setCompoundDrawableTintMode` directly](UseCompatTextViewDrawableApis.md.html)
- [UseCompatTextViewDrawableXml: Compat compound drawable attributes should be used on `TextView`](UseCompatTextViewDrawableXml.md.html)
- [UseSupportActionBar: Should not call `Activity.setActionBar` if you extend `AppCompatActivity`](UseSupportActionBar.md.html)
- [UseSwitchCompatOrMaterialCode: Replace usage of `Switch` widget](UseSwitchCompatOrMaterialCode.md.html)
- [UseSwitchCompatOrMaterialXml: Replace usage of `Switch` widget](UseSwitchCompatOrMaterialXml.md.html)
- [UsingOnClickInXml: Using `android:onClick` on older version of the platform is broken](UsingOnClickInXml.md.html)
* Android Open Source Project (androidx.compose.ui.test.manifest) (1)
- [TestManifestGradleConfiguration: The ui-test-manifest library should be included using the debugImplementation configuration](TestManifestGradleConfiguration.md.html)
* Android Open Source Project (androidx.constraintlayout.compose) (3)
- [IncorrectChainMarginsUsage: Use `LayoutReference.withChainParams()` to define margins for elements in a Chain](IncorrectChainMarginsUsage.md.html)
- [IncorrectMatchParentUsage: Prefer using `Dimension.percent(1f)` when defining custom constraints](IncorrectMatchParentUsage.md.html)
- [IncorrectReferencesDeclaration: `createRefsFor(vararg ids: Any)` should have at least one argument and match assigned variables](IncorrectReferencesDeclaration.md.html)
* Android Open Source Project (androidx.fragment) (9)
- [DetachAndAttachSameFragment: Separate attach() and detach() into separate FragmentTransactions](DetachAndAttachSameFragment.md.html)
- [DialogFragmentCallbacksDetector: Use onCancel() and onDismiss() instead of calling setOnCancelListener() and setOnDismissListener() from onCreateDialog()](DialogFragmentCallbacksDetector.md.html)
- [FragmentAddMenuProvider: Use getViewLifecycleOwner() as the LifecycleOwner instead of a Fragment instance](FragmentAddMenuProvider.md.html)
- [FragmentBackPressedCallback: Use getViewLifecycleOwner() as the LifecycleOwner instead of a Fragment instance](FragmentBackPressedCallback.md.html)
- [FragmentLiveDataObserve: Use getViewLifecycleOwner() as the LifecycleOwner instead of a Fragment instance when observing a LiveData object](FragmentLiveDataObserve.md.html)
- [FragmentTagUsage: Use FragmentContainerView instead of the tag](FragmentTagUsage.md.html)
- [UnsafeRepeatOnLifecycleDetector: RepeatOnLifecycle should be used with viewLifecycleOwner in Fragments](UnsafeRepeatOnLifecycleDetector.md.html)
- [UseGetLayoutInflater: Use getLayoutInflater() to get the LayoutInflater instead of calling LayoutInflater.from(Context)](UseGetLayoutInflater.md.html)
- [UseRequireInsteadOfGet: Use the 'require_____()' API rather than 'get____()' API for more descriptive error messages when it's null](UseRequireInsteadOfGet.md.html)
* Android Open Source Project (androidx.fragment.testing) (1)
- [FragmentGradleConfiguration: Include the fragment-testing library using the debugImplementation configuration](FragmentGradleConfiguration.md.html)
* Android Open Source Project (androidx.fragment.testing.manifest) (1)
- [FragmentGradleConfiguration: Include the fragment-testing-manifest library using the debugImplementation configuration](FragmentGradleConfiguration-2.md.html)
* Android Open Source Project (androidx.lifecycle) (8)
- [NullSafeMutableLiveData: LiveData value assignment nullability mismatch](NullSafeMutableLiveData.md.html)
- [NullSafeMutableLiveData: LiveData value assignment nullability mismatch](NullSafeMutableLiveData-2.md.html)
- [RepeatOnLifecycleWrongUsage: Wrong usage of repeatOnLifecycle](RepeatOnLifecycleWrongUsage.md.html)
- [RepeatOnLifecycleWrongUsage: Wrong usage of repeatOnLifecycle](RepeatOnLifecycleWrongUsage-2.md.html)
- [TestLifecycleOwnerInCoroutine: Use the suspending function setCurrentState(), rather than directly accessing the currentState property](TestLifecycleOwnerInCoroutine.md.html)
- [UnsafeLifecycleWhenUsage: Unsafe UI operation in finally/catch of Lifecycle.whenStarted of similar method](UnsafeLifecycleWhenUsage.md.html)
- [UnsafeLifecycleWhenUsage: Unsafe UI operation in finally/catch of Lifecycle.whenStarted of similar method](UnsafeLifecycleWhenUsage-2.md.html)
- [ViewModelConstructorInComposable: Constructing a view model in a composable](ViewModelConstructorInComposable.md.html)
* Android Open Source Project (androidx.lint:lint-gradle) (6)
- [EagerGradleConfiguration: Avoid using eager task APIs](EagerGradleConfiguration.md.html)
- [GradleProjectIsolation: Avoid using APIs that are not project isolation safe](GradleProjectIsolation.md.html)
- [InternalAgpApiUsage: Avoid using internal Android Gradle Plugin APIs](InternalAgpApiUsage.md.html)
- [InternalGradleApiUsage: Avoid using internal Gradle APIs](InternalGradleApiUsage.md.html)
- [WithPluginClasspathUsage: Flags usage of GradleRunner#withPluginClasspath](WithPluginClasspathUsage.md.html)
- [WithTypeWithoutConfigureEach: Flags usage of withType with a closure instead of configureEach](WithTypeWithoutConfigureEach.md.html)
* Android Open Source Project (androidx.navigation.common) (4)
- [EmptyNavDeepLink: NavDeepLink must define an uri, action, and/or mimetype to be valid](EmptyNavDeepLink.md.html)
- [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation-3.md.html)
- [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation-3.md.html)
- [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType-3.md.html)
* Android Open Source Project (androidx.navigation.runtime) (5)
- [DeepLinkInActivityDestination: A should not be attached to an destination](DeepLinkInActivityDestination.md.html)
- [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation-2.md.html)
- [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation-2.md.html)
- [WrongNavigateRouteType: Navigation route should be an object literal or a destination class instance with arguments](WrongNavigateRouteType.md.html)
- [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType-2.md.html)
* Android Open Source Project (androidx.recyclerview) (1)
- [InvalidSetHasFixedSize: When using `setHasFixedSize()` in an `RecyclerView`, `wrap_content` cannot be used as a value for `size` in the scrolling direction.](InvalidSetHasFixedSize.md.html)
* Android Open Source Project (androidx.startup) (2)
- [EnsureInitializerMetadata: Every Initializer needs to be accompanied by a corresponding entry in the AndroidManifest.xml file](EnsureInitializerMetadata.md.html)
- [EnsureInitializerNoArgConstr: Missing Initializer no-arg constructor](EnsureInitializerNoArgConstr.md.html)
* Android Open Source Project (androidx.wear.protolayout) (3)
- [ProtoLayoutEdgeContentLayoutResponsive: ProtoLayout Material EdgeContentLayout should be used with responsivebehaviour to ensure the best behaviour across different screen sizes andlocales](ProtoLayoutEdgeContentLayoutResponsive.md.html)
- [ProtoLayoutMinSchema: ProtoLayout feature is not guaranteed to be available on the target device API](ProtoLayoutMinSchema.md.html)
- [ProtoLayoutPrimaryLayoutResponsive: ProtoLayout Material PrimaryLayout should be used with responsive behaviourto ensure the best behaviour across different screen sizes and locales](ProtoLayoutPrimaryLayoutResponsive.md.html)
* Android Open Source Project (androidx.work) (9)
- [BadConfigurationProvider: Invalid WorkManager Configuration Provider](BadConfigurationProvider.md.html)
- [BadPeriodicWorkRequestEnqueue: Use `enqueueUniquePeriodicWork()` instead of `enqueue()`](BadPeriodicWorkRequestEnqueue.md.html)
- [IdleBatteryChargingConstraints: Constraints may not be met for some devices](IdleBatteryChargingConstraints.md.html)
- [InvalidPeriodicWorkRequestInterval: Invalid interval duration](InvalidPeriodicWorkRequestInterval.md.html)
- [RemoveWorkManagerInitializer: Remove androidx.work.WorkManagerInitializer from your AndroidManifest.xml when using on-demand initialization](RemoveWorkManagerInitializer.md.html)
- [SpecifyForegroundServiceType: Specify foreground service type](SpecifyForegroundServiceType.md.html)
- [SpecifyJobSchedulerIdRange: Specify a range of JobScheduler ids](SpecifyJobSchedulerIdRange.md.html)
- [UseRxSetProgress2: `setProgress` is deprecated. Use `setCompletableProgress` instead.](UseRxSetProgress2.md.html)
- [WorkerHasAPublicModifier: ListenableWorkers constructed using the default WorkerFactories need to be public](WorkerHasAPublicModifier.md.html)
* Google (com.google.dagger:dagger-lint) (4)
- [FieldSiteTargetOnQualifierAnnotation: Redundant 'field:' used for Dagger qualifier annotation](FieldSiteTargetOnQualifierAnnotation.md.html)
- [JvmStaticProvidesInObjectDetector: @JvmStatic used for @Provides function in an object class](JvmStaticProvidesInObjectDetector.md.html)
- [ModuleCompanionObjects: Module companion objects should not be annotated with @Module](ModuleCompanionObjects.md.html)
- [ModuleCompanionObjectsNotInModuleParent: Companion objects should not be annotated with @Module](ModuleCompanionObjectsNotInModuleParent.md.html)
* Google - Android 3P Vulnerability Research (18)
- [DefaultCleartextTraffic: Application by default permits cleartext traffic](DefaultCleartextTraffic.md.html)
- [DefaultTrustedUserCerts: Application by default trusts user-added CA certificates](DefaultTrustedUserCerts.md.html)
- [DisabledAllSafeBrowsing: Application has disabled safe browsing for all WebView objects](DisabledAllSafeBrowsing.md.html)
- [ExposedRootPath: Application specifies the device root directory](ExposedRootPath.md.html)
- [InsecureDnsSdkLevel: Application vulnerable to DNS spoofing attacks](InsecureDnsSdkLevel.md.html)
- [InsecurePermissionProtectionLevel: Custom permission created with a normal `protectionLevel`](InsecurePermissionProtectionLevel.md.html)
- [InsecureStickyBroadcastsMethod: Usage of insecure sticky broadcasts](InsecureStickyBroadcastsMethod.md.html)
- [InsecureStickyBroadcastsPermission: Usage of insecure sticky broadcasts](InsecureStickyBroadcastsPermission.md.html)
- [MissingAutoVerifyAttribute: Application has custom scheme intent filters with missing `autoVerify` attributes](MissingAutoVerifyAttribute.md.html)
- [SensitiveExternalPath: Application may expose sensitive info like PII by storing it in external storage](SensitiveExternalPath.md.html)
- [StrandhoggVulnerable: Application vulnerable to Strandhogg attacks](StrandhoggVulnerable.md.html)
- [TapjackingVulnerable: Application's UI is vulnerable to tapjacking attacks](TapjackingVulnerable.md.html)
- [UnintendedExposedUrl: Application may have a debugging or development URL publicly exposed](UnintendedExposedUrl.md.html)
- [UnintendedPrivateIpAddress: Application may have a private IP address publicly exposed](UnintendedPrivateIpAddress.md.html)
- [UnsafeCryptoAlgorithmUsage: Application uses unsafe cipher modes or paddings with cryptographic algorithms](UnsafeCryptoAlgorithmUsage.md.html)
- [UnsanitizedContentProviderFilename: Trusting ContentProvider filenames without any sanitization](UnsanitizedContentProviderFilename.md.html)
- [VulnerableCryptoAlgorithm: Application uses vulnerable cryptography algorithms](VulnerableCryptoAlgorithm.md.html)
- [WeakPrng: Application uses non-cryptographically secure pseudorandom number generators](WeakPrng.md.html)
* JakeWharton/timber (com.jakewharton.timber:timber:{version}) (8)
- [BinaryOperationInTimber: Use String#format()](BinaryOperationInTimber.md.html)
- [LogNotTimber: Logging call to Log instead of Timber](LogNotTimber.md.html)
- [StringFormatInTimber: Logging call with Timber contains String#format()](StringFormatInTimber.md.html)
- [ThrowableNotAtBeginning: Exception in Timber not at the beginning](ThrowableNotAtBeginning.md.html)
- [TimberArgCount: Formatting argument types incomplete or inconsistent](TimberArgCount.md.html)
- [TimberArgTypes: Formatting string doesn't match passed arguments](TimberArgTypes.md.html)
- [TimberExceptionLogging: Exception Logging](TimberExceptionLogging.md.html)
- [TimberTagLength: Too Long Log Tags](TimberTagLength.md.html)
* Jetpack Activity Compose (androidx.activity.compose) (3)
- [ContextCastToActivity: LocalContext should not be cast to Activity, use LocalActivity instead](ContextCastToActivity.md.html)
- [LaunchDuringComposition: Calls to `launch` should happen inside of a SideEffect and not during composition](LaunchDuringComposition.md.html)
- [NoCollectCallFound: You must call collect on the given progress flow when using PredictiveBackHandler](NoCollectCallFound.md.html)
* Jetpack Compose (androidx.compose.animation) (5)
- [ConstantContentStateKeyInItemsCall: Composables within an LazyList `items` call should have unique content state keys](ConstantContentStateKeyInItemsCall.md.html)
- [UnusedContentLambdaTargetStateParameter: AnimatedContent calls should use the provided `T` parameter in the content lambda](UnusedContentLambdaTargetStateParameter.md.html)
- [UnusedCrossfadeTargetStateParameter: Crossfade calls should use the provided `T` parameter in the content lambda](UnusedCrossfadeTargetStateParameter.md.html)
- [UnusedSharedTransitionModifierParameter: SharedTransitionScope calls should use the provided Modifier parameter](UnusedSharedTransitionModifierParameter.md.html)
- [UnusedTargetStateInContentKeyLambda: `contentKey` lambda in AnimatedContent should always use the provided `T` parameter](UnusedTargetStateInContentKeyLambda.md.html)
* Jetpack Compose (androidx.compose.animation.core) (3)
- [ArcAnimationSpecTypeIssue: ArcAnimationSpec is designed for 2D values. Particularly, for positional values such as Offset.](ArcAnimationSpecTypeIssue.md.html)
- [UnrememberedAnimatable: Creating an Animatable during composition without using `remember`](UnrememberedAnimatable.md.html)
- [UnusedTransitionTargetStateParameter: Transition.animate* calls should use the provided targetState when defining values](UnusedTransitionTargetStateParameter.md.html)
* Jetpack Compose (androidx.compose.foundation) (4)
- [FrequentlyChangedStateReadInComposition: Frequently changing state should not be directly read in composable function](FrequentlyChangedStateReadInComposition.md.html)
- [UnrememberedMutableInteractionSource: Creating a MutableInteractionSource during composition without using `remember`](UnrememberedMutableInteractionSource.md.html)
- [UnusedBoxWithConstraintsScope: BoxWithConstraints content should use the constraints provided via BoxWithConstraintsScope](UnusedBoxWithConstraintsScope.md.html)
- [UseOfNonLambdaOffsetOverload: Modifier.offset{ } is preferred over Modifier.offset() for `State` backed arguments](UseOfNonLambdaOffsetOverload.md.html)
* Jetpack Compose (androidx.compose.material) (2)
- [ConflictingOnColor: Background colors with the same value should have the same 'on' color](ConflictingOnColor.md.html)
- [UnusedMaterialScaffoldPaddingParameter: Scaffold content should use the padding provided as a lambda parameter](UnusedMaterialScaffoldPaddingParameter.md.html)
* Jetpack Compose (androidx.compose.material3) (2)
- [UnusedMaterial3ScaffoldPaddingParameter: Scaffold content should use the padding provided as a lambda parameter](UnusedMaterial3ScaffoldPaddingParameter.md.html)
- [UsingMaterialAndMaterial3Libraries: material and material3 are separate, incompatible design system libraries](UsingMaterialAndMaterial3Libraries.md.html)
* Jetpack Compose (androidx.compose.runtime) (14)
- [AutoboxingStateCreation: `State` will autobox values assigned to this state. Use a specialized state type instead.](AutoboxingStateCreation.md.html)
- [AutoboxingStateValueProperty: State access causes value to be autoboxed](AutoboxingStateValueProperty.md.html)
- [ComposableLambdaParameterNaming: Primary composable lambda parameter not named `content`](ComposableLambdaParameterNaming.md.html)
- [ComposableLambdaParameterPosition: Non-trailing primary composable lambda parameter](ComposableLambdaParameterPosition.md.html)
- [ComposableNaming: Incorrect naming for @Composable functions](ComposableNaming.md.html)
- [CompositionLocalNaming: CompositionLocal properties should be prefixed with `Local`](CompositionLocalNaming.md.html)
- [CoroutineCreationDuringComposition: Calls to `async` or `launch` should happen inside a LaunchedEffect and not composition](CoroutineCreationDuringComposition.md.html)
- [FlowOperatorInvokedInComposition: Flow operator functions should not be invoked within composition](FlowOperatorInvokedInComposition.md.html)
- [MutableCollectionMutableState: Creating a MutableState object with a mutable collection type](MutableCollectionMutableState.md.html)
- [OpaqueUnitKey: Passing an expression which always returns `Unit` as a key argument](OpaqueUnitKey.md.html)
- [ProduceStateDoesNotAssignValue: produceState calls should assign `value` inside the producer lambda](ProduceStateDoesNotAssignValue.md.html)
- [RememberReturnType: `remember` calls must not return `Unit`](RememberReturnType.md.html)
- [StateFlowValueCalledInComposition: StateFlow.value should not be called within composition](StateFlowValueCalledInComposition.md.html)
- [UnrememberedMutableState: Creating a state object during composition without using `remember`](UnrememberedMutableState.md.html)
* Jetpack Compose (androidx.compose.runtime.saveable) (1)
- [RememberSaveableSaverParameter: `Saver` objects should be passed to the saver parameter, not the vararg `inputs` parameter](RememberSaveableSaverParameter.md.html)
* Jetpack Compose (androidx.compose.ui) (10)
- [ModifierFactoryExtensionFunction: Modifier factory functions should be extensions on Modifier](ModifierFactoryExtensionFunction.md.html)
- [ModifierFactoryReturnType: Modifier factory functions should return Modifier](ModifierFactoryReturnType.md.html)
- [ModifierFactoryUnreferencedReceiver: Modifier factory functions must use the receiver Modifier instance](ModifierFactoryUnreferencedReceiver.md.html)
- [ModifierNodeInspectableProperties: ModifierNodeElement missing inspectableProperties](ModifierNodeInspectableProperties.md.html)
- [ModifierParameter: Guidelines for Modifier parameters in a Composable function](ModifierParameter.md.html)
- [MultipleAwaitPointerEventScopes: Suspicious use of multiple awaitPointerEventScope blocks. Using multiple awaitPointerEventScope blocks may cause some input events to be dropped.](MultipleAwaitPointerEventScopes.md.html)
- [ReturnFromAwaitPointerEventScope: Returning from awaitPointerEventScope may cause some input events to be dropped](ReturnFromAwaitPointerEventScope.md.html)
- [SuspiciousCompositionLocalModifierRead: CompositionLocals should not be read in Modifier.onAttach() or Modifier.onDetach()](SuspiciousCompositionLocalModifierRead.md.html)
- [SuspiciousModifierThen: Using Modifier.then with a Modifier factory function with an implicit receiver](SuspiciousModifierThen.md.html)
- [UnnecessaryComposedModifier: Modifier.composed should only be used for modifiers that invoke @Composable functions](UnnecessaryComposedModifier.md.html)
* Jetpack Compose (androidx.compose.ui.graphics) (2)
- [InvalidColorHexValue: Invalid Color hex value](InvalidColorHexValue.md.html)
- [MissingColorAlphaChannel: Missing Color alpha channel](MissingColorAlphaChannel.md.html)
* Jetpack Compose (androidx.compose.ui.text) (1)
- [InvalidLanguageTagDelimiter: Underscore (`_`) is an unsupported delimiter for subtags](InvalidLanguageTagDelimiter.md.html)
* Jetpack Navigation Compose (androidx.navigation.compose) (6)
- [ComposableDestinationInComposeScope: Building composable destination in compose scope](ComposableDestinationInComposeScope.md.html)
- [ComposableNavGraphInComposeScope: Building navigation graph in compose scope](ComposableNavGraphInComposeScope.md.html)
- [MissingKeepAnnotation: In minified builds, Enum classes used as type-safe Navigation arguments should be annotated with @androidx.annotation.Keep](MissingKeepAnnotation.md.html)
- [MissingSerializableAnnotation: Type-safe NavDestinations must be annotated with @kotlinx.serialization.Serializable](MissingSerializableAnnotation.md.html)
- [UnrememberedGetBackStackEntry: Calling getBackStackEntry during composition without using `remember`with a NavBackStackEntry key](UnrememberedGetBackStackEntry.md.html)
- [WrongStartDestinationType: If the startDestination points to a Class with arguments, the startDestination must be an instance of that class. If it points to a Class without arguments, startDestination can be a KClass literal, such as StartClass::class.](WrongStartDestinationType.md.html)
* slack (com.slack.lint.compose:compose-lints) (21)
- [ComposeCompositionLocalGetter: CompositionLocals should not use getters](ComposeCompositionLocalGetter.md.html)
- [ComposeCompositionLocalUsage: CompositionLocals are discouraged](ComposeCompositionLocalUsage.md.html)
- [ComposeContentEmitterReturningValues: Composable functions should emit XOR return](ComposeContentEmitterReturningValues.md.html)
- [ComposeM2Api: Using a Compose M2 API is not recommended](ComposeM2Api.md.html)
- [ComposeModifierComposed: Don't use Modifier.composed {}](ComposeModifierComposed.md.html)
- [ComposeModifierMissing: Missing modifier parameter](ComposeModifierMissing.md.html)
- [ComposeModifierReused: Modifiers should only be used once](ComposeModifierReused.md.html)
- [ComposeModifierWithoutDefault: Missing Modifier default value](ComposeModifierWithoutDefault.md.html)
- [ComposeMultipleContentEmitters: Composables should only be emit from one source](ComposeMultipleContentEmitters.md.html)
- [ComposeMutableParameters: Mutable objects in Compose will break state](ComposeMutableParameters.md.html)
- [ComposeNamingLowercase: Value-returning Composables should be lowercase](ComposeNamingLowercase.md.html)
- [ComposeNamingUppercase: Unit Composables should be uppercase](ComposeNamingUppercase.md.html)
- [ComposeParameterOrder: Composable function parameters should be ordered](ComposeParameterOrder.md.html)
- [ComposePreviewNaming: Preview annotations require certain suffixes](ComposePreviewNaming.md.html)
- [ComposePreviewPublic: Preview composables should be private](ComposePreviewPublic.md.html)
- [ComposeRememberMissing: State values should be remembered](ComposeRememberMissing.md.html)
- [ComposeUnstableCollections: Immutable collections should ideally be used in Composables](ComposeUnstableCollections.md.html)
- [ComposeUnstableReceiver: Unstable receivers will always be recomposed](ComposeUnstableReceiver.md.html)
- [ComposeViewModelForwarding: Don't forward ViewModels through composables](ComposeViewModelForwarding.md.html)
- [ComposeViewModelInjection: Implicit dependencies of composables should be made explicit](ComposeViewModelInjection.md.html)
- [SlotReused: Slots should be invoked in at most one place](SlotReused.md.html)
* slack (slack-lint) (94)
- [ArgInFormattedQuantityStringRes: Count value in formatted string resource](ArgInFormattedQuantityStringRes.md.html)
- [AvoidUsingNotNullOperator: Avoid using the !! operator in Kotlin](AvoidUsingNotNullOperator.md.html)
- [BindingReceiverParameter: @Binds/@Provides functions cannot be extensions](BindingReceiverParameter.md.html)
- [BindingReturnType: @Binds/@Provides must have a return type](BindingReturnType.md.html)
- [BindsMustBeAbstract: @Binds functions must be abstract](BindsMustBeAbstract.md.html)
- [BindsTypeMismatch: @Binds parameter/return must be type-assignable](BindsTypeMismatch.md.html)
- [BindsWrongParameterCount: @Binds must have one parameter](BindsWrongParameterCount.md.html)
- [CastingViewContextToActivity: Unsafe cast of `Context` to `Activity`](CastingViewContextToActivity.md.html)
- [DenyListedApi: Deny-listed API](DenyListedApi.md.html)
- [DenyListedBlockingApi: Deny-listed API](DenyListedBlockingApi.md.html)
- [DeprecatedCall: This class or method is deprecated; consider using an alternative](DeprecatedCall.md.html)
- [DeprecatedSqlUsage: Use SqlDelight](DeprecatedSqlUsage.md.html)
- [DoNotCallProviders: Dagger provider methods should not be called directly by user code](DoNotCallProviders.md.html)
- [DoNotCallViewToString: Do not use `View.toString()`](DoNotCallViewToString.md.html)
- [DoNotExposeEitherNetInRepositories: Repository APIs should not expose EitherNet types directly](DoNotExposeEitherNetInRepositories.md.html)
- [DoNotMock: ](DoNotMock.md.html)
- [DoNotMockAnything: Do not add new mocks](DoNotMockAnything.md.html)
- [DoNotMockAutoValue: AutoValue classes represent pure data classes, so mocking them should not be necessary](DoNotMockAutoValue.md.html)
- [DoNotMockDataClass: data classes represent pure data classes, so mocking them should not be necessary](DoNotMockDataClass.md.html)
- [DoNotMockObjectClass: object classes are singletons, so mocking them should not be necessary](DoNotMockObjectClass.md.html)
- [DoNotMockPlatformTypes: platform types should not be mocked](DoNotMockPlatformTypes.md.html)
- [DoNotMockRecordClass: record classes represent pure data classes, so mocking them should not be necessary](DoNotMockRecordClass.md.html)
- [DoNotMockSealedClass: sealed classes have a restricted type hierarchy, use a subtype instead](DoNotMockSealedClass.md.html)
- [ErrorProneDoNotMockUsage: Use Slack's internal `@DoNotMock` annotation](ErrorProneDoNotMockUsage.md.html)
- [ExceptionMessage: Please provide a string for the `lazyMessage` parameter](ExceptionMessage.md.html)
- [FragmentConstructorInjection: Fragment dependencies should be injected using constructor injections only](FragmentConstructorInjection.md.html)
- [FragmentFieldInjection: Fragment dependencies should be injected using the Fragment's constructor](FragmentFieldInjection.md.html)
- [FullyQualifiedResource: Resources should use an import alias instead of being fully qualified](FullyQualifiedResource.md.html)
- [GuavaChecksUsed: Use Slack's JavaPreconditions instead of Guava's Preconditions checks](GuavaChecksUsed.md.html)
- [GuavaPreconditionsUsedInKotlin: Kotlin precondition checks should use the Kotlin standard library checks](GuavaPreconditionsUsedInKotlin.md.html)
- [InclusiveNaming: Use inclusive naming](InclusiveNaming.md.html)
- [InclusiveNaming: Use inclusive naming](InclusiveNaming.md.html)
- [InflationInItemDecoration: Avoid inflating a view to display text](InflationInItemDecoration.md.html)
- [InjectInJava: Only Kotlin classes should be injected in order for Anvil to work](InjectInJava.md.html)
- [JavaOnlyDetector: Using @JavaOnly elements in Kotlin code](JavaOnlyDetector.md.html)
- [KotlinPairNotCreated: Use Kotlin's kotlin.Pair instead of other Pair types from other libraries like AndroidX and Slack commons](KotlinPairNotCreated.md.html)
- [MainScopeUsage: Use slack.foundation.coroutines.android.MainScope](MainScopeUsage.md.html)
- [MissingResourceImportAlias: Missing import alias for R class](MissingResourceImportAlias.md.html)
- [MoshiUsageAdaptedByRequiresAdapter: @AdaptedBy.adapter must be a JsonAdapter or JsonAdapter.Factory](MoshiUsageAdaptedByRequiresAdapter.md.html)
- [MoshiUsageAdaptedByRequiresKeep: Adapters targeted by @AdaptedBy must have @Keep](MoshiUsageAdaptedByRequiresKeep.md.html)
- [MoshiUsageArray: Prefer List over Array](MoshiUsageArray.md.html)
- [MoshiUsageBlankGenerator: Don't use blank JsonClass.generator values](MoshiUsageBlankGenerator.md.html)
- [MoshiUsageBlankJsonName: Don't use blank names in `@Json`](MoshiUsageBlankJsonName.md.html)
- [MoshiUsageBlankTypeLabel: Moshi-sealed requires a type label specified after the 'sealed:' prefix](MoshiUsageBlankTypeLabel.md.html)
- [MoshiUsageClassVisibility: @JsonClass-annotated types must be public, package-private, or internal](MoshiUsageClassVisibility.md.html)
- [MoshiUsageDoubleClassAnnotation: Only use one of @AdaptedBy or @JsonClass](MoshiUsageDoubleClassAnnotation.md.html)
- [MoshiUsageDoubleTypeLabel: Only use one of @TypeLabel or @DefaultObject](MoshiUsageDoubleTypeLabel.md.html)
- [MoshiUsageDuplicateJsonName: Duplicate JSON names are errors as JSON does not allow duplicate keys in objects](MoshiUsageDuplicateJsonName.md.html)
- [MoshiUsageEnumAnnotatedUnknown: UNKNOWN members in @JsonClass-annotated enums should not be annotated with @Json](MoshiUsageEnumAnnotatedUnknown.md.html)
- [MoshiUsageEnumCasing: Consider using `@Json(name = ...)` rather than lower casing](MoshiUsageEnumCasing.md.html)
- [MoshiUsageEnumJsonClassGenerated: Enums annotated with @JsonClass must not set `generateAdapter` to true](MoshiUsageEnumJsonClassGenerated.md.html)
- [MoshiUsageEnumMissingJsonClass: Enums serialized with Moshi should be annotated with @JsonClass](MoshiUsageEnumMissingJsonClass.md.html)
- [MoshiUsageEnumMissingUnknown: Enums serialized with Moshi must reserve the first member as UNKNOWN](MoshiUsageEnumMissingUnknown.md.html)
- [MoshiUsageEnumPropertyCouldBeMoshi: Consider making enum properties also use Moshi](MoshiUsageEnumPropertyCouldBeMoshi.md.html)
- [MoshiUsageEnumPropertyDefaultUnknown: Suspicious default value to 'UNKNOWN' for a Moshi enum](MoshiUsageEnumPropertyDefaultUnknown.md.html)
- [MoshiUsageGenerateAdapterShouldBeTrue: JsonClass.generateAdapter must be true in order for Moshi code gen to run](MoshiUsageGenerateAdapterShouldBeTrue.md.html)
- [MoshiUsageGenericSealedSubtype: Sealed subtypes used with moshi-sealed cannot be generic](MoshiUsageGenericSealedSubtype.md.html)
- [MoshiUsageInappropriateTypeLabel: Inappropriate @TypeLabel or @DefaultObject annotation](MoshiUsageInappropriateTypeLabel.md.html)
- [MoshiUsageMissingPrimary: @JsonClass-annotated types must have a primary constructor or be sealed](MoshiUsageMissingPrimary.md.html)
- [MoshiUsageMissingTypeLabel: Sealed Moshi subtypes must be annotated with @TypeLabel or @DefaultObject](MoshiUsageMissingTypeLabel.md.html)
- [MoshiUsageMutableCollections: Use immutable collections rather than mutable versions](MoshiUsageMutableCollections.md.html)
- [MoshiUsageNonMoshiClassCollection: Concrete Collection type '%HINT%' is not natively supported by Moshi](MoshiUsageNonMoshiClassCollection.md.html)
- [MoshiUsageNonMoshiClassExternal: External type '%HINT%' is not natively supported by Moshi](MoshiUsageNonMoshiClassExternal.md.html)
- [MoshiUsageNonMoshiClassInternal: Non-Moshi internal type '%HINT%' is not natively supported by Moshi](MoshiUsageNonMoshiClassInternal.md.html)
- [MoshiUsageNonMoshiClassMap: Concrete Map type '%HINT%' is not natively supported by Moshi](MoshiUsageNonMoshiClassMap.md.html)
- [MoshiUsageNonMoshiClassPlatform: Platform type '%HINT%' is not natively supported by Moshi](MoshiUsageNonMoshiClassPlatform.md.html)
- [MoshiUsageObject: Object types cannot be annotated with @JsonClass](MoshiUsageObject.md.html)
- [MoshiUsageParamNeedsInit: Constructor non-property parameters in Moshi classes must have default values](MoshiUsageParamNeedsInit.md.html)
- [MoshiUsagePrivateConstructor: Constructors in Moshi classes cannot be private](MoshiUsagePrivateConstructor.md.html)
- [MoshiUsagePrivateConstructorProperty: Constructor parameter properties in Moshi classes cannot be private](MoshiUsagePrivateConstructorProperty.md.html)
- [MoshiUsageQualifierRetention: JsonQualifiers must have RUNTIME retention](MoshiUsageQualifierRetention.md.html)
- [MoshiUsageQualifierTarget: JsonQualifiers must include FIELD targeting](MoshiUsageQualifierTarget.md.html)
- [MoshiUsageRedundantJsonName: Json.name with the same value as the property/enum member name is redundant](MoshiUsageRedundantJsonName.md.html)
- [MoshiUsageRedundantSiteTarget: Use of site-targets on @Json are redundant](MoshiUsageRedundantSiteTarget.md.html)
- [MoshiUsageSealedMustBeSealed: Moshi-sealed can only be applied to 'sealed' types](MoshiUsageSealedMustBeSealed.md.html)
- [MoshiUsageSerializedName: Use Moshi's @Json rather than Gson's @SerializedName](MoshiUsageSerializedName.md.html)
- [MoshiUsageSnakeCase: Consider using `@Json(name = ...)` rather than direct snake casing](MoshiUsageSnakeCase.md.html)
- [MoshiUsageTransientNeedsInit: Transient constructor properties must have default values](MoshiUsageTransientNeedsInit.md.html)
- [MoshiUsageUnsupportedType: This type cannot be annotated with @JsonClass](MoshiUsageUnsupportedType.md.html)
- [MoshiUsageUseData: Model classes should be immutable data classes](MoshiUsageUseData.md.html)
- [MoshiUsageVarProperty: Moshi properties should be immutable](MoshiUsageVarProperty.md.html)
- [MustBeInModule: @Binds/@Provides functions must be in modules](MustBeInModule.md.html)
- [MustUseNamedParams: Calls to @MustUseNamedParams-annotated methods must name all parameters](MustUseNamedParams.md.html)
- [ParcelizeFunctionProperty: Function type properties are not parcelable](ParcelizeFunctionProperty.md.html)
- [ProvidesMustNotBeAbstract: @Provides functions cannot be abstract](ProvidesMustNotBeAbstract.md.html)
- [RawDispatchersUse: Use SlackDispatchers](RawDispatchersUse.md.html)
- [RedactedInJavaUsage: @Redacted is only supported in Kotlin classes](RedactedInJavaUsage.md.html)
- [RedundantBinds: @Binds functions should return a different type](RedundantBinds.md.html)
- [RestrictCallsTo: Methods annotated with @RestrictedCallsTo should only be called from the specified scope](RestrictCallsTo.md.html)
- [RetrofitUsage: This is replaced by the caller](RetrofitUsage.md.html)
- [SerializableUsage: Don't use Serializable](SerializableUsage.md.html)
- [SpanMarkPointMissingMask: Check that Span flags use the bitwise mask SPAN_POINT_MARK_MASK when being compared to](SpanMarkPointMissingMask.md.html)
- [SubscribeOnMain: subscribeOn called with the main thread scheduler](SubscribeOnMain.md.html)
- [WrongResourceImportAlias: Wrong import alias for this R class](WrongResourceImportAlias.md.html)
* Uber (AutoDispose) (1)
- [AutoDispose: Missing Disposable handling: Apply AutoDispose or cache the Disposable instance manually and enable lenient mode](AutoDispose.md.html)
* vanniktech/lint-rules/ (49)
- [AlertDialogUsage: Use the support library AlertDialog instead of android.app.AlertDialog](AlertDialogUsage.md.html)
- [AssertjImport: Flags Java 6 incompatible imports](AssertjImport.md.html)
- [ColorCasing: Raw colors should be defined with uppercase letters](ColorCasing.md.html)
- [ConstraintLayoutToolsEditorAttribute: Flags tools:layout_editor xml properties](ConstraintLayoutToolsEditorAttribute.md.html)
- [DefaultLayoutAttribute: Flags default layout values](DefaultLayoutAttribute.md.html)
- [ErroneousLayoutAttribute: Layout attribute that's not applicable to a particular view](ErroneousLayoutAttribute.md.html)
- [FormalGerman: Marks strings which contain formal German words](FormalGerman.md.html)
- [ImplicitStringPlaceholder: Marks implicit placeholders in strings without an index](ImplicitStringPlaceholder.md.html)
- [InvalidAccessibility: Marks invalid accessibility usages](InvalidAccessibility.md.html)
- [InvalidImport: Flags invalid imports](InvalidImport.md.html)
- [InvalidSingleLineComment: Marks single line comments that are not sentences](InvalidSingleLineComment.md.html)
- [InvalidString: Marks invalid translation strings](InvalidString.md.html)
- [JCenter: Marks usage of the jcenter() repository](JCenter.md.html)
- [KotlinRequireNotNullUseMessage: Marks usage of the requireNotNull method without lazy messages](KotlinRequireNotNullUseMessage.md.html)
- [LayoutFileNameMatchesClass: Checks that the layout file matches the class name](LayoutFileNameMatchesClass.md.html)
- [MatchingMenuId: Flags menu ids that don't match with the file name](MatchingMenuId.md.html)
- [MatchingViewId: Flags view ids that don't match with the file name](MatchingViewId.md.html)
- [MissingScrollbars: Scroll views should declare a scrollbar](MissingScrollbars.md.html)
- [MissingXmlHeader: Flags xml files that don't have a header](MissingXmlHeader.md.html)
- [NamingPattern: Names should be well named](NamingPattern.md.html)
- [RawColor: Flags color that are not defined as resource](RawColor.md.html)
- [RawDimen: Flags dimensions that are not defined as resource](RawDimen.md.html)
- [ResourcesGetColorCall: Marks usage of deprecated getColor() on Resources](ResourcesGetColorCall.md.html)
- [ResourcesGetColorStateListCall: Marks usage of deprecated getColorStateList() on Resources](ResourcesGetColorStateListCall.md.html)
- [ResourcesGetDrawableCall: Marks usage of deprecated getDrawable() on Resources](ResourcesGetDrawableCall.md.html)
- [RxJava2DefaultScheduler: Pass a scheduler instead of relying on the default Scheduler](RxJava2DefaultScheduler.md.html)
- [RxJava2DisposableAddAllCall: Marks usage of addAll() on CompositeDisposable](RxJava2DisposableAddAllCall.md.html)
- [RxJava2DisposableDisposeCall: Marks usage of dispose() on CompositeDisposable](RxJava2DisposableDisposeCall.md.html)
- [RxJava2MethodMissingCheckReturnValue: Method is missing the @CheckReturnValue annotation](RxJava2MethodMissingCheckReturnValue.md.html)
- [RxJava2MissingCompositeDisposableClear: Marks CompositeDisposables that are not being cleared](RxJava2MissingCompositeDisposableClear.md.html)
- [RxJava2SchedulersFactoryCall: Instead of calling the Schedulers factory methods directly inject the Schedulers](RxJava2SchedulersFactoryCall.md.html)
- [RxJava2SubscribeMissingOnError: Flags a version of the subscribe() method without an error Consumer](RxJava2SubscribeMissingOnError.md.html)
- [ShouldUseStaticImport: Flags declarations that should be statically imported](ShouldUseStaticImport.md.html)
- [StringNotCapitalized: Marks strings which are not capitalized](StringNotCapitalized.md.html)
- [SuperfluousMarginDeclaration: Flags margin declarations that can be simplified](SuperfluousMarginDeclaration.md.html)
- [SuperfluousNameSpace: Flags namespaces that are already declared](SuperfluousNameSpace.md.html)
- [SuperfluousPaddingDeclaration: Flags padding declarations that can be simplified](SuperfluousPaddingDeclaration.md.html)
- [Todo: Marks todos in any given file](Todo.md.html)
- [UnsupportedLayoutAttribute: Marks layout attributes which are not supported](UnsupportedLayoutAttribute.md.html)
- [UnusedMergeAttributes: Flags android and app attributes that are used on a attribute for custom Views](UnusedMergeAttributes.md.html)
- [WrongAnnotationOrder: Checks that Annotations comply with a certain order](WrongAnnotationOrder.md.html)
- [WrongConstraintLayoutUsage: Marks a wrong usage of the Constraint Layout](WrongConstraintLayoutUsage.md.html)
- [WrongDrawableName: Drawable names should be prefixed accordingly](WrongDrawableName.md.html)
- [WrongGlobalIconColor: Each icon should have the same global color defined](WrongGlobalIconColor.md.html)
- [WrongLayoutName: Layout names should be prefixed accordingly](WrongLayoutName.md.html)
- [WrongMenuIdFormat: Flag menu ids that are not in lowerCamelCase Format](WrongMenuIdFormat.md.html)
- [WrongTestMethodName: Flags test methods that start with test](WrongTestMethodName.md.html)
- [WrongViewIdFormat: Flag view ids that are not in lowerCamelCase Format](WrongViewIdFormat.md.html)
- [XmlSpacing: XML files should not contain any new lines](XmlSpacing.md.html)
* Withdrawn or Obsolete Issues (17)
- [GoogleAppIndexingWarning](GoogleAppIndexingWarning.md.html)
- [GoogleAppIndexingApiWarning](GoogleAppIndexingApiWarning.md.html)
- [IconLauncherFormat](IconLauncherFormat.md.html)
- [ViewTag](ViewTag.md.html)
- [FieldGetter](FieldGetter.md.html)
- [MissingRegistered](MissingRegistered.md.html)
- [FontValidationWarning](FontValidationWarning.md.html)
- [FontValidationError](FontValidationError.md.html)
- [AppLinksAutoVerifyError](AppLinksAutoVerifyError.md.html)
- [AppLinksAutoVerifyWarning](AppLinksAutoVerifyWarning.md.html)
- [AllowBackup](AllowBackup.md.html)
- [MediaCapabilities](MediaCapabilities.md.html)
- [UnpackedNativeCode](UnpackedNativeCode.md.html)
- [Assert](Assert.md.html)
- [UsesMinSdkAttributes](UsesMinSdkAttributes.md.html)
- [Override](Override.md.html)
- [PackageManagerGetSignatures](PackageManagerGetSignatures.md.html)