(#) 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)