// Baseline format: 1.0
AcronymName: android.app.NotificationChannel#isImportanceLockedByOEM():
    
AcronymName: android.app.NotificationChannel#setImportanceLockedByOEM(boolean):
    


ActionValue: android.location.Location#EXTRA_NO_GPS_LOCATION:
    
ActionValue: android.net.TetheringManager#ACTION_TETHER_STATE_CHANGED:
    
ActionValue: android.net.TetheringManager#EXTRA_ACTIVE_TETHER:
    
ActionValue: android.net.TetheringManager#EXTRA_AVAILABLE_TETHER:
    
ActionValue: android.net.TetheringManager#EXTRA_ERRORED_TETHER:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_ADDITIONAL_CALL_INFO:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CALL_RAT_TYPE:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CHILD_NUMBER:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CNA:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CNAP:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_CODEC:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_DIALSTRING:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_DISPLAY_TEXT:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_EMERGENCY_CALL:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_IS_CALL_PULL:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_OI:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_OIR:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_REMOTE_URI:
    
ActionValue: android.telephony.ims.ImsCallProfile#EXTRA_USSD:
    
ActionValue: android.telephony.ims.ImsReasonInfo#EXTRA_MSG_SERVICE_NOT_AUTHORIZED:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#ACTION_CLEANUP:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#ACTION_DOWNLOAD_RESULT_INTERNAL:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#ACTION_FILE_DESCRIPTOR_REQUEST:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_FD_COUNT:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_FINAL_URI:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_FREE_URI_LIST:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_PAUSED_LIST:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_PAUSED_URI_LIST:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_SERVICE_ID:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_TEMP_FILES_IN_USE:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_TEMP_FILE_ROOT:
    
ActionValue: android.telephony.mbms.vendor.VendorUtils#EXTRA_TEMP_LIST:
    


ArrayReturn: android.app.UiAutomation#executeShellCommandRw(String):
    
ArrayReturn: android.hardware.soundtrigger.SoundTrigger.KeyphraseSoundModel#KeyphraseSoundModel(java.util.UUID, java.util.UUID, byte[], android.hardware.soundtrigger.SoundTrigger.Keyphrase[]) parameter #3:
    Method parameter should be Collection<Keyphrase> (or subclass) instead of raw array; was `android.hardware.soundtrigger.SoundTrigger.Keyphrase[]`
ArrayReturn: android.hardware.soundtrigger.SoundTrigger.KeyphraseSoundModel#KeyphraseSoundModel(java.util.UUID, java.util.UUID, byte[], android.hardware.soundtrigger.SoundTrigger.Keyphrase[], int) parameter #3:
    Method parameter should be Collection<Keyphrase> (or subclass) instead of raw array; was `android.hardware.soundtrigger.SoundTrigger.Keyphrase[]`
ArrayReturn: android.hardware.soundtrigger.SoundTrigger.KeyphraseSoundModel#getKeyphrases():
    Method should return Collection<Keyphrase> (or subclass) instead of raw array; was `android.hardware.soundtrigger.SoundTrigger.Keyphrase[]`
ArrayReturn: android.location.GnssMeasurementsEvent#GnssMeasurementsEvent(android.location.GnssClock, android.location.GnssMeasurement[]) parameter #1:
    
ArrayReturn: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #10:
    
ArrayReturn: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #11:
    
ArrayReturn: android.metrics.LogMaker#LogMaker(Object[]) parameter #0:
    
ArrayReturn: android.metrics.LogMaker#deserialize(Object[]) parameter #0:
    
ArrayReturn: android.metrics.LogMaker#serialize():
    
ArrayReturn: android.net.TestNetworkManager#createTunInterface(android.net.LinkAddress[]) parameter #0:
    
ArrayReturn: android.os.HwBlob#wrapArray(boolean[]):
    
ArrayReturn: android.os.HwBlob#wrapArray(byte[]):
    
ArrayReturn: android.os.HwBlob#wrapArray(double[]):
    
ArrayReturn: android.os.HwBlob#wrapArray(float[]):
    
ArrayReturn: android.os.HwBlob#wrapArray(int[]):
    
ArrayReturn: android.os.HwBlob#wrapArray(long[]):
    
ArrayReturn: android.os.HwBlob#wrapArray(short[]):
    
ArrayReturn: android.os.NativeHandle#NativeHandle(java.io.FileDescriptor[], int[], boolean) parameter #0:
    
ArrayReturn: android.os.NativeHandle#getFileDescriptors():
    
ArrayReturn: android.security.keystore.AttestationUtils#attestDeviceIds(android.content.Context, int[], byte[]):
    
ArrayReturn: android.telephony.ims.ImsUtListener#onUtConfigurationCallBarringQueried(int, android.telephony.ims.ImsSsInfo[]) parameter #1:
    
ArrayReturn: android.telephony.ims.ImsUtListener#onUtConfigurationCallForwardQueried(int, android.telephony.ims.ImsCallForwardInfo[]) parameter #1:
    
ArrayReturn: android.telephony.ims.ImsUtListener#onUtConfigurationCallWaitingQueried(int, android.telephony.ims.ImsSsInfo[]) parameter #1:
    
ArrayReturn: android.telephony.ims.stub.ImsRegistrationImplBase#onSubscriberAssociatedUriChanged(android.net.Uri[]) parameter #0:
    
ArrayReturn: android.view.Display#getSupportedWideColorGamut():
    Method should return Collection<ColorSpace> (or subclass) instead of raw array; was `android.graphics.ColorSpace[]`
ArrayReturn: android.view.FocusFinder#sort(android.view.View[], int, int, android.view.ViewGroup, boolean) parameter #0:
    
ArrayReturn: android.view.contentcapture.ViewNode#getAutofillOptions():
    
ArrayReturn: android.view.contentcapture.ViewNode.ViewStructureImpl#setAutofillOptions(CharSequence[]) parameter #0:
    
ArrayReturn: android.view.inspector.InspectableProperty#enumMapping():
    
ArrayReturn: android.view.inspector.InspectableProperty#flagMapping():
    


AutoBoxing: android.os.HwBlob#wrapArray(byte[]):
    
AutoBoxing: android.os.HwBlob#wrapArray(double[]):
    
AutoBoxing: android.os.HwBlob#wrapArray(float[]):
    
AutoBoxing: android.os.HwBlob#wrapArray(int[]):
    
AutoBoxing: android.os.HwBlob#wrapArray(long[]):
    
AutoBoxing: android.os.HwBlob#wrapArray(short[]):
    
AutoBoxing: android.os.VintfObject#getTargetFrameworkCompatibilityMatrixVersion():
    


BannedThrow: android.app.ActivityTaskManager#removeStacksInWindowingModes(int[]):
    
BannedThrow: android.app.ActivityTaskManager#removeStacksWithActivityTypes(int[]):
    
BannedThrow: android.app.ActivityTaskManager#setTaskWindowingMode(int, int, boolean):
    
BannedThrow: android.app.ActivityTaskManager#setTaskWindowingModeSplitScreenPrimary(int, int, boolean, boolean, android.graphics.Rect, boolean):
    
BannedThrow: android.media.audiofx.AudioEffect#getParameter(byte[], byte[]):
    
BannedThrow: android.media.audiofx.AudioEffect#getParameter(int, byte[]):
    
BannedThrow: android.media.audiofx.AudioEffect#getParameter(int, int[]):
    
BannedThrow: android.media.audiofx.AudioEffect#getParameter(int, short[]):
    
BannedThrow: android.media.audiofx.AudioEffect#getParameter(int[], short[]):
    
BannedThrow: android.media.audiofx.AudioEffect#setParameter(byte[], byte[]):
    
BannedThrow: android.media.audiofx.AudioEffect#setParameter(int, byte[]):
    
BannedThrow: android.media.audiofx.AudioEffect#setParameter(int, int):
    
BannedThrow: android.media.audiofx.AudioEffect#setParameter(int, short):
    
BannedThrow: android.media.audiofx.AudioEffect#setParameter(int[], byte[]):
    
BannedThrow: android.media.audiofx.AudioEffect#setParameter(int[], int[]):
    
BannedThrow: android.media.audiopolicy.AudioMix.Builder#Builder(android.media.audiopolicy.AudioMixingRule):
    
BannedThrow: android.media.audiopolicy.AudioMix.Builder#build():
    
BannedThrow: android.media.audiopolicy.AudioMix.Builder#setDevice(android.media.AudioDeviceInfo):
    
BannedThrow: android.media.audiopolicy.AudioMix.Builder#setFormat(android.media.AudioFormat):
    
BannedThrow: android.media.audiopolicy.AudioMix.Builder#setRouteFlags(int):
    
BannedThrow: android.media.audiopolicy.AudioMixingRule.Builder#addMixRule(int, Object):
    
BannedThrow: android.media.audiopolicy.AudioMixingRule.Builder#addRule(android.media.AudioAttributes, int):
    
BannedThrow: android.media.audiopolicy.AudioMixingRule.Builder#excludeMixRule(int, Object):
    
BannedThrow: android.media.audiopolicy.AudioMixingRule.Builder#excludeRule(android.media.AudioAttributes, int):
    
BannedThrow: android.media.audiopolicy.AudioPolicy#createAudioRecordSink(android.media.audiopolicy.AudioMix):
    
BannedThrow: android.media.audiopolicy.AudioPolicy#createAudioTrackSource(android.media.audiopolicy.AudioMix):
    
BannedThrow: android.media.audiopolicy.AudioPolicy#setFocusDuckingBehavior(int):
    
BannedThrow: android.media.audiopolicy.AudioPolicy.Builder#addMix(android.media.audiopolicy.AudioMix):
    
BannedThrow: android.media.audiopolicy.AudioPolicy.Builder#setLooper(android.os.Looper):
    
BannedThrow: android.os.HwBinder#getService(String, String):
    
BannedThrow: android.os.HwBinder#getService(String, String, boolean):
    
BannedThrow: android.os.Process#getThreadScheduler(int):
    


BuilderSetStyle: android.media.audiopolicy.AudioMixingRule.Builder#allowPrivilegedPlaybackCapture(boolean):
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.media.audiopolicy.AudioMixingRule.Builder.allowPrivilegedPlaybackCapture(boolean)
BuilderSetStyle: android.media.audiopolicy.AudioMixingRule.Builder#excludeMixRule(int, Object):
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.media.audiopolicy.AudioMixingRule.Builder.excludeMixRule(int,Object)
BuilderSetStyle: android.media.audiopolicy.AudioMixingRule.Builder#excludeRule(android.media.AudioAttributes, int):
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.media.audiopolicy.AudioMixingRule.Builder.excludeRule(android.media.AudioAttributes,int)
BuilderSetStyle: android.net.NetworkCapabilities.Builder#removeCapability(int):
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.net.NetworkCapabilities.Builder.removeCapability(int)
BuilderSetStyle: android.net.NetworkCapabilities.Builder#removeTransportType(int):
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.net.NetworkCapabilities.Builder.removeTransportType(int)
BuilderSetStyle: android.net.metrics.RaEvent.Builder#updateDnsslLifetime(long):
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.net.metrics.RaEvent.Builder.updateDnsslLifetime(long)
BuilderSetStyle: android.net.metrics.RaEvent.Builder#updatePrefixPreferredLifetime(long):
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.net.metrics.RaEvent.Builder.updatePrefixPreferredLifetime(long)
BuilderSetStyle: android.net.metrics.RaEvent.Builder#updatePrefixValidLifetime(long):
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.net.metrics.RaEvent.Builder.updatePrefixValidLifetime(long)
BuilderSetStyle: android.net.metrics.RaEvent.Builder#updateRdnssLifetime(long):
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.net.metrics.RaEvent.Builder.updateRdnssLifetime(long)
BuilderSetStyle: android.net.metrics.RaEvent.Builder#updateRouteInfoLifetime(long):
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.net.metrics.RaEvent.Builder.updateRouteInfoLifetime(long)
BuilderSetStyle: android.net.metrics.RaEvent.Builder#updateRouterLifetime(long):
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.net.metrics.RaEvent.Builder.updateRouterLifetime(long)
BuilderSetStyle: android.os.StrictMode.ThreadPolicy.Builder#detectExplicitGc():
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.os.StrictMode.ThreadPolicy.Builder.detectExplicitGc()
BuilderSetStyle: android.os.StrictMode.VmPolicy.Builder#detectIncorrectContextUse():
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.os.StrictMode.VmPolicy.Builder.detectIncorrectContextUse()
BuilderSetStyle: android.os.StrictMode.VmPolicy.Builder#permitIncorrectContextUse():
    Builder methods names should use setFoo() / addFoo() / clearFoo() style: method android.os.StrictMode.VmPolicy.Builder.permitIncorrectContextUse()


CallbackInterface: android.app.prediction.AppPredictor.Callback:
    
CallbackInterface: android.permission.PermissionControllerManager.OnGetAppPermissionResultCallback:
    
CallbackInterface: android.widget.Magnifier.Callback:
    


CallbackMethodName: android.os.RemoteCallback:
    


ConcreteCollection: android.content.AutofillOptions#disabledActivities:
    
ConcreteCollection: android.content.AutofillOptions#whitelistedActivitiesForAugmentedAutofill:
    
ConcreteCollection: android.content.ContentCaptureOptions#ContentCaptureOptions(int, int, int, int, int, android.util.ArraySet<android.content.ComponentName>) parameter #5:
    
ConcreteCollection: android.content.ContentCaptureOptions#whitelistedComponents:
    
ConcreteCollection: android.database.sqlite.SQLiteDebug.PagerStats#dbStats:
    
ConcreteCollection: android.os.HwParcel#readBoolVector():
    
ConcreteCollection: android.os.HwParcel#readDoubleVector():
    
ConcreteCollection: android.os.HwParcel#readFloatVector():
    
ConcreteCollection: android.os.HwParcel#readInt16Vector():
    
ConcreteCollection: android.os.HwParcel#readInt32Vector():
    
ConcreteCollection: android.os.HwParcel#readInt64Vector():
    
ConcreteCollection: android.os.HwParcel#readInt8Vector():
    
ConcreteCollection: android.os.HwParcel#readNativeHandleVector():
    
ConcreteCollection: android.os.HwParcel#readStringVector():
    
ConcreteCollection: android.os.HwParcel#writeBoolVector(java.util.ArrayList<java.lang.Boolean>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeDoubleVector(java.util.ArrayList<java.lang.Double>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeFloatVector(java.util.ArrayList<java.lang.Float>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeInt16Vector(java.util.ArrayList<java.lang.Short>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeInt32Vector(java.util.ArrayList<java.lang.Integer>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeInt64Vector(java.util.ArrayList<java.lang.Long>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeInt8Vector(java.util.ArrayList<java.lang.Byte>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeNativeHandleVector(java.util.ArrayList<android.os.NativeHandle>) parameter #0:
    
ConcreteCollection: android.os.HwParcel#writeStringVector(java.util.ArrayList<java.lang.String>) parameter #0:
    
ConcreteCollection: android.service.autofill.CompositeUserData#getFieldClassificationAlgorithms():
    
ConcreteCollection: android.service.autofill.CompositeUserData#getFieldClassificationArgs():
    
ConcreteCollection: android.service.autofill.InternalTransformation#batchApply(android.service.autofill.ValueFinder, android.widget.RemoteViews, java.util.ArrayList<android.util.Pair<java.lang.Integer,android.service.autofill.InternalTransformation>>) parameter #2:
    
ConcreteCollection: android.service.autofill.UserData#getFieldClassificationAlgorithms():
    
ConcreteCollection: android.telephony.ims.ImsConferenceState#mParticipants:
    


ContextFirst: android.os.VibrationEffect#get(android.net.Uri, android.content.Context) parameter #1:
    


ContextNameSuffix: android.telephony.mbms.vendor.MbmsGroupCallServiceBase:
    


EndsWithImpl: android.view.contentcapture.ViewNode.ViewStructureImpl:
    


Enum: android.view.inspector.InspectableProperty.ValueType:
    


EqualsAndHashCode: android.app.prediction.AppPredictionContext#equals(Object):
    
EqualsAndHashCode: android.app.prediction.AppTarget#equals(Object):
    
EqualsAndHashCode: android.app.prediction.AppTargetEvent#equals(Object):
    
EqualsAndHashCode: android.net.apf.ApfCapabilities#equals(Object):
    
EqualsAndHashCode: android.net.metrics.ApfProgramEvent#equals(Object):
    
EqualsAndHashCode: android.net.metrics.ApfStats#equals(Object):
    
EqualsAndHashCode: android.net.metrics.DhcpClientEvent#equals(Object):
    
EqualsAndHashCode: android.net.metrics.IpManagerEvent#equals(Object):
    
EqualsAndHashCode: android.net.metrics.IpReachabilityEvent#equals(Object):
    
EqualsAndHashCode: android.net.metrics.NetworkEvent#equals(Object):
    
EqualsAndHashCode: android.net.metrics.RaEvent#equals(Object):
    
EqualsAndHashCode: android.net.metrics.ValidationProbeEvent#equals(Object):
    
EqualsAndHashCode: android.os.IncidentManager.PendingReport#equals(Object):
    
EqualsAndHashCode: android.os.StrictMode.ViolationInfo#hashCode():
    


ExecutorRegistration: android.content.pm.PackageManager#addOnPermissionsChangeListener(android.content.pm.PackageManager.OnPermissionsChangedListener):
    
ExecutorRegistration: android.hardware.camera2.CameraDevice#createCustomCaptureSession(android.hardware.camera2.params.InputConfiguration, java.util.List<android.hardware.camera2.params.OutputConfiguration>, int, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler):
    
ExecutorRegistration: android.media.audiofx.AudioEffect#setParameterListener(android.media.audiofx.AudioEffect.OnParameterChangeListener):
    
ExecutorRegistration: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyFocusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener):
    
ExecutorRegistration: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyStatusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyStatusListener):
    
ExecutorRegistration: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyVolumeCallback(android.media.audiopolicy.AudioPolicy.AudioPolicyVolumeCallback):
    
ExecutorRegistration: android.os.IncidentManager#cancelAuthorization(android.os.IncidentManager.AuthListener):
    
ExecutorRegistration: android.os.IncidentManager#requestAuthorization(int, String, int, android.os.IncidentManager.AuthListener):
    
ExecutorRegistration: android.os.RemoteCallback#RemoteCallback(android.os.RemoteCallback.OnResultListener, android.os.Handler):
    
ExecutorRegistration: android.permission.PermissionControllerManager#countPermissionApps(java.util.List<java.lang.String>, int, android.permission.PermissionControllerManager.OnCountPermissionAppsResultCallback, android.os.Handler):
    Registration methods should have overload that accepts delivery Executor: `countPermissionApps`
ExecutorRegistration: android.permission.PermissionControllerManager#getAppPermissions(String, android.permission.PermissionControllerManager.OnGetAppPermissionResultCallback, android.os.Handler):
    
ExecutorRegistration: android.service.watchdog.ExplicitHealthCheckService#setCallback(android.os.RemoteCallback):
    Registration methods should have overload that accepts delivery Executor: `setCallback`
ExecutorRegistration: android.telephony.ims.stub.ImsCallSessionImplBase#setListener(android.telephony.ims.ImsCallSessionListener):
    
ExecutorRegistration: android.telephony.ims.stub.ImsUtImplBase#setListener(android.telephony.ims.ImsUtListener):
    
ExecutorRegistration: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener):
    
ExecutorRegistration: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener):
    
ExecutorRegistration: android.telephony.mbms.vendor.MbmsDownloadServiceBase#initialize(int, android.telephony.mbms.MbmsDownloadSessionCallback):
    
ExecutorRegistration: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#initialize(android.telephony.mbms.MbmsGroupCallSessionCallback, int):
    
ExecutorRegistration: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#startGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>, android.telephony.mbms.GroupCallCallback):
    
ExecutorRegistration: android.telephony.mbms.vendor.MbmsStreamingServiceBase#initialize(android.telephony.mbms.MbmsStreamingSessionCallback, int):
    
ExecutorRegistration: android.telephony.mbms.vendor.MbmsStreamingServiceBase#startStreaming(int, String, android.telephony.mbms.StreamingServiceCallback):
    
ExecutorRegistration: android.window.WindowOrganizer#applySyncTransaction(android.window.WindowContainerTransaction, android.window.WindowContainerTransactionCallback):
    Registration methods should have overload that accepts delivery Executor: `applySyncTransaction`


ForbiddenSuperClass: android.app.AppDetailsActivity:
    


GenericException: android.app.ActivityView#finalize():
    
GenericException: android.app.prediction.AppPredictor#finalize():
    
GenericException: android.service.autofill.CharSequenceTransformation#apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int):
    
GenericException: android.service.autofill.DateTransformation#apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int):
    
GenericException: android.service.autofill.ImageTransformation#apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int):
    
GenericException: android.service.autofill.augmented.FillWindow#finalize():
    


GetterOnBuilder: android.hardware.display.BrightnessConfiguration.Builder#getMaxCorrectionsByCategory():
    Getter should be on the built object, not the builder: method android.hardware.display.BrightnessConfiguration.Builder.getMaxCorrectionsByCategory()
GetterOnBuilder: android.hardware.display.BrightnessConfiguration.Builder#getMaxCorrectionsByPackageName():
    Getter should be on the built object, not the builder: method android.hardware.display.BrightnessConfiguration.Builder.getMaxCorrectionsByPackageName()


GetterSetterNames: android.app.NotificationChannel#isBlockableSystem():
    
GetterSetterNames: android.app.NotificationChannel#isImportanceLockedByCriticalDeviceFunction():
    
GetterSetterNames: android.app.NotificationChannel#isImportanceLockedByOEM():
    
GetterSetterNames: android.location.GnssClock#setBiasNanos(double):
    
GetterSetterNames: android.location.GnssClock#setBiasUncertaintyNanos(double):
    
GetterSetterNames: android.location.GnssClock#setDriftNanosPerSecond(double):
    
GetterSetterNames: android.location.GnssClock#setDriftUncertaintyNanosPerSecond(double):
    
GetterSetterNames: android.location.GnssClock#setElapsedRealtimeNanos(long):
    
GetterSetterNames: android.location.GnssClock#setElapsedRealtimeUncertaintyNanos(double):
    
GetterSetterNames: android.location.GnssClock#setFullBiasNanos(long):
    
GetterSetterNames: android.location.GnssClock#setLeapSecond(int):
    
GetterSetterNames: android.location.GnssClock#setReferenceCarrierFrequencyHzForIsb(double):
    
GetterSetterNames: android.location.GnssClock#setReferenceCodeTypeForIsb(String):
    
GetterSetterNames: android.location.GnssClock#setReferenceConstellationTypeForIsb(int):
    
GetterSetterNames: android.location.GnssClock#setTimeUncertaintyNanos(double):
    
GetterSetterNames: android.location.GnssMeasurement#setBasebandCn0DbHz(double):
    
GetterSetterNames: android.location.GnssMeasurement#setCarrierFrequencyHz(float):
    
GetterSetterNames: android.location.GnssMeasurement#setCodeType(String):
    
GetterSetterNames: android.location.GnssMeasurement#setFullInterSignalBiasNanos(double):
    
GetterSetterNames: android.location.GnssMeasurement#setFullInterSignalBiasUncertaintyNanos(double):
    
GetterSetterNames: android.location.GnssMeasurement#setSatelliteInterSignalBiasNanos(double):
    
GetterSetterNames: android.location.GnssMeasurement#setSatelliteInterSignalBiasUncertaintyNanos(double):
    
GetterSetterNames: android.location.GnssMeasurement#setSnrInDb(double):
    
GetterSetterNames: android.location.LocationRequest#isLocationSettingsIgnored():
    
GetterSetterNames: android.location.LocationRequest#isLowPowerMode():
    
GetterSetterNames: android.os.IncidentReportArgs#isAll():
    
GetterSetterNames: android.service.notification.NotificationStats#setDirectReplied():
    
GetterSetterNames: android.service.notification.NotificationStats#setExpanded():
    
GetterSetterNames: android.service.notification.NotificationStats#setSeen():
    
GetterSetterNames: android.service.notification.NotificationStats#setSnoozed():
    
GetterSetterNames: android.service.notification.NotificationStats#setViewedSettings():
    
GetterSetterNames: android.view.View#isAutofilled():
    
GetterSetterNames: android.view.View#isDefaultFocusHighlightEnabled():
    


IllegalStateException: android.media.audiopolicy.AudioMix.Builder#build():
    


IntentBuilderName: android.app.backup.BackupManager#getConfigurationIntent(String):
    
IntentBuilderName: android.app.backup.BackupManager#getDataManagementIntent(String):
    
IntentBuilderName: android.hardware.soundtrigger.KeyphraseEnrollmentInfo#getManageKeyphraseIntent(int, String, java.util.Locale):
    Methods creating an Intent should be named `create<Foo>Intent()`, was `getManageKeyphraseIntent`


IntentName: android.provider.Settings.Secure#VOICE_INTERACTION_SERVICE:
    
IntentName: android.provider.Telephony.Sms.Intents#SMS_CARRIER_PROVISION_ACTION:
    
IntentName: android.service.notification.Adjustment#KEY_CONTEXTUAL_ACTIONS:
    


InterfaceConstant: android.service.autofill.AutofillFieldClassificationService#SERVICE_INTERFACE:
    
InterfaceConstant: android.service.autofill.augmented.AugmentedAutofillService#SERVICE_INTERFACE:
    
InterfaceConstant: android.service.contentcapture.ContentCaptureService#SERVICE_INTERFACE:
    
InterfaceConstant: android.service.notification.NotificationAssistantService#SERVICE_INTERFACE:
    
InterfaceConstant: android.telecom.PhoneAccountSuggestionService#SERVICE_INTERFACE:
    


InternalField: android.telephony.ims.ImsConferenceState#mParticipants:
    


KotlinOperator: android.os.WorkSource#get(int):
    
KotlinOperator: android.util.SparseArrayMap#get(int, String):
    


ListenerInterface: android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener:
    
ListenerInterface: android.media.audiopolicy.AudioPolicy.AudioPolicyStatusListener:
    
ListenerInterface: android.os.IncidentManager.AuthListener:
    
ListenerInterface: android.telephony.ims.ImsCallSessionListener:
    
ListenerInterface: android.telephony.ims.ImsUtListener:
    


ListenerLast: android.hardware.camera2.CameraDevice#createCustomCaptureSession(android.hardware.camera2.params.InputConfiguration, java.util.List<android.hardware.camera2.params.OutputConfiguration>, int, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) parameter #4:
    
ListenerLast: android.location.LocationManager#requestLocationUpdates(android.location.LocationRequest, android.location.LocationListener, android.os.Looper) parameter #2:
    
ListenerLast: android.permission.PermissionControllerManager#countPermissionApps(java.util.List<java.lang.String>, int, android.permission.PermissionControllerManager.OnCountPermissionAppsResultCallback, android.os.Handler) parameter #3:
    Listeners should always be at end of argument list (method `countPermissionApps`)
ListenerLast: android.permission.PermissionControllerManager#getAppPermissions(String, android.permission.PermissionControllerManager.OnGetAppPermissionResultCallback, android.os.Handler) parameter #2:
    
ListenerLast: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#initialize(android.telephony.mbms.MbmsGroupCallSessionCallback, int) parameter #1:
    
ListenerLast: android.telephony.mbms.vendor.MbmsStreamingServiceBase#initialize(android.telephony.mbms.MbmsStreamingSessionCallback, int) parameter #1:
    


ManagerConstructor: android.content.pm.ShortcutManager#ShortcutManager(android.content.Context):
    


ManagerLookup: android.telephony.ims.ImsMmTelManager#createForSubscriptionId(int):
    
ManagerLookup: android.telephony.ims.ProvisioningManager#createForSubscriptionId(int):
    


MethodNameTense: android.telephony.ims.feature.CapabilityChangeRequest#getCapabilitiesToEnable():
    


MethodNameUnits: android.telephony.ims.ImsCallForwardInfo#getTimeSeconds():
    


MinMaxConstant: android.os.UserHandle#MIN_SECONDARY_USER_ID:
    
MinMaxConstant: android.view.autofill.AutofillManager#MAX_TEMP_AUGMENTED_SERVICE_DURATION_MS:
    


MissingGetterMatchingBuilder: android.app.AppOpsManager.HistoricalOpsRequest.Builder#setAttributionTag(String):
    android.app.AppOpsManager.HistoricalOpsRequest does not declare a `getAttributionTag()` method matching method android.app.AppOpsManager.HistoricalOpsRequest.Builder.setAttributionTag(String)
MissingGetterMatchingBuilder: android.app.AppOpsManager.HistoricalOpsRequest.Builder#setFlags(int):
    android.app.AppOpsManager.HistoricalOpsRequest does not declare a `getFlags()` method matching method android.app.AppOpsManager.HistoricalOpsRequest.Builder.setFlags(int)
MissingGetterMatchingBuilder: android.app.AppOpsManager.HistoricalOpsRequest.Builder#setOpNames(java.util.List<java.lang.String>):
    android.app.AppOpsManager.HistoricalOpsRequest does not declare a `getOpNames()` method matching method android.app.AppOpsManager.HistoricalOpsRequest.Builder.setOpNames(java.util.List<java.lang.String>)
MissingGetterMatchingBuilder: android.app.AppOpsManager.HistoricalOpsRequest.Builder#setPackageName(String):
    android.app.AppOpsManager.HistoricalOpsRequest does not declare a `getPackageName()` method matching method android.app.AppOpsManager.HistoricalOpsRequest.Builder.setPackageName(String)
MissingGetterMatchingBuilder: android.app.AppOpsManager.HistoricalOpsRequest.Builder#setUid(int):
    android.app.AppOpsManager.HistoricalOpsRequest does not declare a `getUid()` method matching method android.app.AppOpsManager.HistoricalOpsRequest.Builder.setUid(int)
MissingGetterMatchingBuilder: android.content.integrity.RuleSet.Builder#addRules(java.util.List<android.content.integrity.Rule>):
    android.content.integrity.RuleSet does not declare a `getRuless()` method matching method android.content.integrity.RuleSet.Builder.addRules(java.util.List<android.content.integrity.Rule>)
MissingGetterMatchingBuilder: android.hardware.display.BrightnessConfiguration.Builder#addCorrectionByCategory(int, android.hardware.display.BrightnessCorrection):
    android.hardware.display.BrightnessConfiguration does not declare a `getCorrectionByCategorys()` method matching method android.hardware.display.BrightnessConfiguration.Builder.addCorrectionByCategory(int,android.hardware.display.BrightnessCorrection)
MissingGetterMatchingBuilder: android.hardware.display.BrightnessConfiguration.Builder#addCorrectionByPackageName(String, android.hardware.display.BrightnessCorrection):
    android.hardware.display.BrightnessConfiguration does not declare a `getCorrectionByPackageNames()` method matching method android.hardware.display.BrightnessConfiguration.Builder.addCorrectionByPackageName(String,android.hardware.display.BrightnessCorrection)
MissingGetterMatchingBuilder: android.hardware.display.BrightnessConfiguration.Builder#setDescription(String):
    android.hardware.display.BrightnessConfiguration does not declare a `getDescription()` method matching method android.hardware.display.BrightnessConfiguration.Builder.setDescription(String)
MissingGetterMatchingBuilder: android.hardware.lights.LightsRequest.Builder#setLight(android.hardware.lights.Light, android.hardware.lights.LightState):
    android.hardware.lights.LightsRequest does not declare a `getLight()` method matching method android.hardware.lights.LightsRequest.Builder.setLight(android.hardware.lights.Light,android.hardware.lights.LightState)
MissingGetterMatchingBuilder: android.media.VolumeShaper.Configuration.Builder#setOptionFlags(int):
    android.media.VolumeShaper.Configuration does not declare a `getOptionFlags()` method matching method android.media.VolumeShaper.Configuration.Builder.setOptionFlags(int)
MissingGetterMatchingBuilder: android.media.audiopolicy.AudioMix.Builder#setDevice(android.media.AudioDeviceInfo):
    android.media.audiopolicy.AudioMix does not declare a `getDevice()` method matching method android.media.audiopolicy.AudioMix.Builder.setDevice(android.media.AudioDeviceInfo)
MissingGetterMatchingBuilder: android.media.audiopolicy.AudioMix.Builder#setFormat(android.media.AudioFormat):
    android.media.audiopolicy.AudioMix does not declare a `getFormat()` method matching method android.media.audiopolicy.AudioMix.Builder.setFormat(android.media.AudioFormat)
MissingGetterMatchingBuilder: android.media.audiopolicy.AudioMix.Builder#setRouteFlags(int):
    android.media.audiopolicy.AudioMix does not declare a `getRouteFlags()` method matching method android.media.audiopolicy.AudioMix.Builder.setRouteFlags(int)
MissingGetterMatchingBuilder: android.media.audiopolicy.AudioMixingRule.Builder#addMixRule(int, Object):
    android.media.audiopolicy.AudioMixingRule does not declare a `getMixRules()` method matching method android.media.audiopolicy.AudioMixingRule.Builder.addMixRule(int,Object)
MissingGetterMatchingBuilder: android.media.audiopolicy.AudioMixingRule.Builder#addRule(android.media.AudioAttributes, int):
    android.media.audiopolicy.AudioMixingRule does not declare a `getRules()` method matching method android.media.audiopolicy.AudioMixingRule.Builder.addRule(android.media.AudioAttributes,int)
MissingGetterMatchingBuilder: android.media.audiopolicy.AudioPolicy.Builder#addMix(android.media.audiopolicy.AudioMix):
    android.media.audiopolicy.AudioPolicy does not declare a `getMixs()` method matching method android.media.audiopolicy.AudioPolicy.Builder.addMix(android.media.audiopolicy.AudioMix)
MissingGetterMatchingBuilder: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyFocusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener):
    android.media.audiopolicy.AudioPolicy does not declare a `getAudioPolicyFocusListener()` method matching method android.media.audiopolicy.AudioPolicy.Builder.setAudioPolicyFocusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener)
MissingGetterMatchingBuilder: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyStatusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyStatusListener):
    android.media.audiopolicy.AudioPolicy does not declare a `getAudioPolicyStatusListener()` method matching method android.media.audiopolicy.AudioPolicy.Builder.setAudioPolicyStatusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyStatusListener)
MissingGetterMatchingBuilder: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyVolumeCallback(android.media.audiopolicy.AudioPolicy.AudioPolicyVolumeCallback):
    android.media.audiopolicy.AudioPolicy does not declare a `getAudioPolicyVolumeCallback()` method matching method android.media.audiopolicy.AudioPolicy.Builder.setAudioPolicyVolumeCallback(android.media.audiopolicy.AudioPolicy.AudioPolicyVolumeCallback)
MissingGetterMatchingBuilder: android.media.audiopolicy.AudioPolicy.Builder#setIsAudioFocusPolicy(boolean):
    android.media.audiopolicy.AudioPolicy does not declare a `isIsAudioFocusPolicy()` method matching method android.media.audiopolicy.AudioPolicy.Builder.setIsAudioFocusPolicy(boolean)
MissingGetterMatchingBuilder: android.media.audiopolicy.AudioPolicy.Builder#setIsTestFocusPolicy(boolean):
    android.media.audiopolicy.AudioPolicy does not declare a `isIsTestFocusPolicy()` method matching method android.media.audiopolicy.AudioPolicy.Builder.setIsTestFocusPolicy(boolean)
MissingGetterMatchingBuilder: android.media.audiopolicy.AudioPolicy.Builder#setLooper(android.os.Looper):
    android.media.audiopolicy.AudioPolicy does not declare a `getLooper()` method matching method android.media.audiopolicy.AudioPolicy.Builder.setLooper(android.os.Looper)
MissingGetterMatchingBuilder: android.net.CaptivePortalData.Builder#setBytesRemaining(long):
    android.net.CaptivePortalData does not declare a `getBytesRemaining()` method matching method android.net.CaptivePortalData.Builder.setBytesRemaining(long)
MissingGetterMatchingBuilder: android.net.CaptivePortalData.Builder#setExpiryTime(long):
    android.net.CaptivePortalData does not declare a `getExpiryTime()` method matching method android.net.CaptivePortalData.Builder.setExpiryTime(long)
MissingGetterMatchingBuilder: android.net.CaptivePortalData.Builder#setRefreshTime(long):
    android.net.CaptivePortalData does not declare a `getRefreshTime()` method matching method android.net.CaptivePortalData.Builder.setRefreshTime(long)
MissingGetterMatchingBuilder: android.net.NetworkCapabilities.Builder#addCapability(int):
    android.net.NetworkCapabilities does not declare a `getCapabilitys()` method matching method android.net.NetworkCapabilities.Builder.addCapability(int)
MissingGetterMatchingBuilder: android.net.NetworkCapabilities.Builder#setRequestorPackageName(String):
    android.net.NetworkCapabilities does not declare a `getRequestorPackageName()` method matching method android.net.NetworkCapabilities.Builder.setRequestorPackageName(String)
MissingGetterMatchingBuilder: android.net.NetworkCapabilities.Builder#setRequestorUid(int):
    android.net.NetworkCapabilities does not declare a `getRequestorUid()` method matching method android.net.NetworkCapabilities.Builder.setRequestorUid(int)
MissingGetterMatchingBuilder: android.net.TetheringManager.TetheringRequest.Builder#setShouldShowEntitlementUi(boolean):
    android.net.TetheringManager.TetheringRequest does not declare a `shouldShowEntitlementUi()` method matching method android.net.TetheringManager.TetheringRequest.Builder.setShouldShowEntitlementUi(boolean)
MissingGetterMatchingBuilder: android.net.TetheringManager.TetheringRequest.Builder#setStaticIpv4Addresses(android.net.LinkAddress, android.net.LinkAddress):
    android.net.TetheringManager.TetheringRequest does not declare a `getStaticIpv4Addresses()` method matching method android.net.TetheringManager.TetheringRequest.Builder.setStaticIpv4Addresses(android.net.LinkAddress,android.net.LinkAddress)
MissingGetterMatchingBuilder: android.net.metrics.ApfProgramEvent.Builder#setActualLifetime(long):
    android.net.metrics.ApfProgramEvent does not declare a `getActualLifetime()` method matching method android.net.metrics.ApfProgramEvent.Builder.setActualLifetime(long)
MissingGetterMatchingBuilder: android.net.metrics.ApfProgramEvent.Builder#setCurrentRas(int):
    android.net.metrics.ApfProgramEvent does not declare a `getCurrentRas()` method matching method android.net.metrics.ApfProgramEvent.Builder.setCurrentRas(int)
MissingGetterMatchingBuilder: android.net.metrics.ApfProgramEvent.Builder#setFilteredRas(int):
    android.net.metrics.ApfProgramEvent does not declare a `getFilteredRas()` method matching method android.net.metrics.ApfProgramEvent.Builder.setFilteredRas(int)
MissingGetterMatchingBuilder: android.net.metrics.ApfProgramEvent.Builder#setFlags(boolean, boolean):
    android.net.metrics.ApfProgramEvent does not declare a `isFlags()` method matching method android.net.metrics.ApfProgramEvent.Builder.setFlags(boolean,boolean)
MissingGetterMatchingBuilder: android.net.metrics.ApfProgramEvent.Builder#setLifetime(long):
    android.net.metrics.ApfProgramEvent does not declare a `getLifetime()` method matching method android.net.metrics.ApfProgramEvent.Builder.setLifetime(long)
MissingGetterMatchingBuilder: android.net.metrics.ApfProgramEvent.Builder#setProgramLength(int):
    android.net.metrics.ApfProgramEvent does not declare a `getProgramLength()` method matching method android.net.metrics.ApfProgramEvent.Builder.setProgramLength(int)
MissingGetterMatchingBuilder: android.net.metrics.ApfStats.Builder#setDroppedRas(int):
    android.net.metrics.ApfStats does not declare a `getDroppedRas()` method matching method android.net.metrics.ApfStats.Builder.setDroppedRas(int)
MissingGetterMatchingBuilder: android.net.metrics.ApfStats.Builder#setDurationMs(long):
    android.net.metrics.ApfStats does not declare a `getDurationMs()` method matching method android.net.metrics.ApfStats.Builder.setDurationMs(long)
MissingGetterMatchingBuilder: android.net.metrics.ApfStats.Builder#setMatchingRas(int):
    android.net.metrics.ApfStats does not declare a `getMatchingRas()` method matching method android.net.metrics.ApfStats.Builder.setMatchingRas(int)
MissingGetterMatchingBuilder: android.net.metrics.ApfStats.Builder#setMaxProgramSize(int):
    android.net.metrics.ApfStats does not declare a `getMaxProgramSize()` method matching method android.net.metrics.ApfStats.Builder.setMaxProgramSize(int)
MissingGetterMatchingBuilder: android.net.metrics.ApfStats.Builder#setParseErrors(int):
    android.net.metrics.ApfStats does not declare a `getParseErrors()` method matching method android.net.metrics.ApfStats.Builder.setParseErrors(int)
MissingGetterMatchingBuilder: android.net.metrics.ApfStats.Builder#setProgramUpdates(int):
    android.net.metrics.ApfStats does not declare a `getProgramUpdates()` method matching method android.net.metrics.ApfStats.Builder.setProgramUpdates(int)
MissingGetterMatchingBuilder: android.net.metrics.ApfStats.Builder#setProgramUpdatesAll(int):
    android.net.metrics.ApfStats does not declare a `getProgramUpdatesAll()` method matching method android.net.metrics.ApfStats.Builder.setProgramUpdatesAll(int)
MissingGetterMatchingBuilder: android.net.metrics.ApfStats.Builder#setProgramUpdatesAllowingMulticast(int):
    android.net.metrics.ApfStats does not declare a `getProgramUpdatesAllowingMulticast()` method matching method android.net.metrics.ApfStats.Builder.setProgramUpdatesAllowingMulticast(int)
MissingGetterMatchingBuilder: android.net.metrics.ApfStats.Builder#setReceivedRas(int):
    android.net.metrics.ApfStats does not declare a `getReceivedRas()` method matching method android.net.metrics.ApfStats.Builder.setReceivedRas(int)
MissingGetterMatchingBuilder: android.net.metrics.ApfStats.Builder#setZeroLifetimeRas(int):
    android.net.metrics.ApfStats does not declare a `getZeroLifetimeRas()` method matching method android.net.metrics.ApfStats.Builder.setZeroLifetimeRas(int)
MissingGetterMatchingBuilder: android.net.metrics.DhcpClientEvent.Builder#setDurationMs(int):
    android.net.metrics.DhcpClientEvent does not declare a `getDurationMs()` method matching method android.net.metrics.DhcpClientEvent.Builder.setDurationMs(int)
MissingGetterMatchingBuilder: android.net.metrics.DhcpClientEvent.Builder#setMsg(String):
    android.net.metrics.DhcpClientEvent does not declare a `getMsg()` method matching method android.net.metrics.DhcpClientEvent.Builder.setMsg(String)
MissingGetterMatchingBuilder: android.net.metrics.ValidationProbeEvent.Builder#setDurationMs(long):
    android.net.metrics.ValidationProbeEvent does not declare a `getDurationMs()` method matching method android.net.metrics.ValidationProbeEvent.Builder.setDurationMs(long)
MissingGetterMatchingBuilder: android.net.metrics.ValidationProbeEvent.Builder#setProbeType(int, boolean):
    android.net.metrics.ValidationProbeEvent does not declare a `getProbeType()` method matching method android.net.metrics.ValidationProbeEvent.Builder.setProbeType(int,boolean)
MissingGetterMatchingBuilder: android.net.metrics.ValidationProbeEvent.Builder#setReturnCode(int):
    android.net.metrics.ValidationProbeEvent does not declare a `getReturnCode()` method matching method android.net.metrics.ValidationProbeEvent.Builder.setReturnCode(int)
MissingGetterMatchingBuilder: android.security.keystore.KeyGenParameterSpec.Builder#setUniqueIdIncluded(boolean):
    android.security.keystore.KeyGenParameterSpec does not declare a `isUniqueIdIncluded()` method matching method android.security.keystore.KeyGenParameterSpec.Builder.setUniqueIdIncluded(boolean)
MissingGetterMatchingBuilder: android.service.autofill.Dataset.Builder#setFieldInlinePresentation(android.view.autofill.AutofillId, android.view.autofill.AutofillValue, java.util.regex.Pattern, android.service.autofill.InlinePresentation):
    android.service.autofill.Dataset does not declare a `getFieldInlinePresentation()` method matching method android.service.autofill.Dataset.Builder.setFieldInlinePresentation(android.view.autofill.AutofillId,android.view.autofill.AutofillValue,java.util.regex.Pattern,android.service.autofill.InlinePresentation)
MissingGetterMatchingBuilder: android.service.autofill.augmented.FillResponse.Builder#setClientState(android.os.Bundle):
    android.service.autofill.augmented.FillResponse does not declare a `getClientState()` method matching method android.service.autofill.augmented.FillResponse.Builder.setClientState(android.os.Bundle)
MissingGetterMatchingBuilder: android.service.autofill.augmented.FillResponse.Builder#setFillWindow(android.service.autofill.augmented.FillWindow):
    android.service.autofill.augmented.FillResponse does not declare a `getFillWindow()` method matching method android.service.autofill.augmented.FillResponse.Builder.setFillWindow(android.service.autofill.augmented.FillWindow)
MissingGetterMatchingBuilder: android.service.autofill.augmented.FillResponse.Builder#setInlineSuggestions(java.util.List<android.service.autofill.Dataset>):
    android.service.autofill.augmented.FillResponse does not declare a `getInlineSuggestions()` method matching method android.service.autofill.augmented.FillResponse.Builder.setInlineSuggestions(java.util.List<android.service.autofill.Dataset>)
MissingGetterMatchingBuilder: android.telecom.CallScreeningService.CallResponse.Builder#setShouldScreenCallViaAudioProcessing(boolean):
    android.telecom.CallScreeningService.CallResponse does not declare a `shouldScreenCallViaAudioProcessing()` method matching method android.telecom.CallScreeningService.CallResponse.Builder.setShouldScreenCallViaAudioProcessing(boolean)
MissingGetterMatchingBuilder: android.telecom.ConnectionRequest.Builder#setIsAdhocConferenceCall(boolean):
    android.telecom.ConnectionRequest does not declare a `isIsAdhocConferenceCall()` method matching method android.telecom.ConnectionRequest.Builder.setIsAdhocConferenceCall(boolean)
MissingGetterMatchingBuilder: android.telecom.ConnectionRequest.Builder#setRttPipeFromInCall(android.os.ParcelFileDescriptor):
    android.telecom.ConnectionRequest does not declare a `getRttPipeFromInCall()` method matching method android.telecom.ConnectionRequest.Builder.setRttPipeFromInCall(android.os.ParcelFileDescriptor)
MissingGetterMatchingBuilder: android.telecom.ConnectionRequest.Builder#setRttPipeToInCall(android.os.ParcelFileDescriptor):
    android.telecom.ConnectionRequest does not declare a `getRttPipeToInCall()` method matching method android.telecom.ConnectionRequest.Builder.setRttPipeToInCall(android.os.ParcelFileDescriptor)
MissingGetterMatchingBuilder: android.telecom.ConnectionRequest.Builder#setShouldShowIncomingCallUi(boolean):
    android.telecom.ConnectionRequest does not declare a `shouldShowIncomingCallUi()` method matching method android.telecom.ConnectionRequest.Builder.setShouldShowIncomingCallUi(boolean)
MissingGetterMatchingBuilder: android.telecom.PhoneAccount.Builder#setGroupId(String):
    android.telecom.PhoneAccount does not declare a `getGroupId()` method matching method android.telecom.PhoneAccount.Builder.setGroupId(String)
MissingGetterMatchingBuilder: android.telephony.NetworkRegistrationInfo.Builder#setEmergencyOnly(boolean):
    android.telephony.NetworkRegistrationInfo does not declare a `isEmergencyOnly()` method matching method android.telephony.NetworkRegistrationInfo.Builder.setEmergencyOnly(boolean)
MissingGetterMatchingBuilder: android.telephony.ims.ImsSsData.Builder#setCallForwardingInfo(java.util.List<android.telephony.ims.ImsCallForwardInfo>):
    android.telephony.ims.ImsSsData does not declare a `getCallForwardingInfo()` method matching method android.telephony.ims.ImsSsData.Builder.setCallForwardingInfo(java.util.List<android.telephony.ims.ImsCallForwardInfo>)
MissingGetterMatchingBuilder: android.telephony.ims.stub.ImsFeatureConfiguration.Builder#addFeature(int, int):
    android.telephony.ims.stub.ImsFeatureConfiguration does not declare a `getFeatures()` method matching method android.telephony.ims.stub.ImsFeatureConfiguration.Builder.addFeature(int,int)
MissingGetterMatchingBuilder: android.telephony.mbms.DownloadRequest.Builder#setServiceId(String):
    android.telephony.mbms.DownloadRequest does not declare a `getServiceId()` method matching method android.telephony.mbms.DownloadRequest.Builder.setServiceId(String)


MissingNullability: android.app.Activity#onMovedToDisplay(int, android.content.res.Configuration) parameter #1:
    
MissingNullability: android.app.ActivityManager#addOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener, int) parameter #0:
    
MissingNullability: android.app.ActivityManager#alwaysShowUnsupportedCompileSdkWarning(android.content.ComponentName) parameter #0:
    
MissingNullability: android.app.ActivityManager#forceStopPackage(String) parameter #0:
    
MissingNullability: android.app.ActivityManager#getPackageImportance(String) parameter #0:
    
MissingNullability: android.app.ActivityManager#removeOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener) parameter #0:
    
MissingNullability: android.app.ActivityManager#scheduleApplicationInfoChanged(java.util.List<java.lang.String>, int) parameter #0:
    
MissingNullability: android.app.ActivityManager.TaskDescription#getIconFilename():
    
MissingNullability: android.app.ActivityTaskManager#clearLaunchParamsForPackages(java.util.List<java.lang.String>) parameter #0:
    
MissingNullability: android.app.ActivityTaskManager#listAllStacks():
    
MissingNullability: android.app.ActivityTaskManager#moveTopActivityToPinnedStack(int, android.graphics.Rect) parameter #1:
    
MissingNullability: android.app.ActivityTaskManager#removeStacksInWindowingModes(int[]) parameter #0:
    
MissingNullability: android.app.ActivityTaskManager#removeStacksWithActivityTypes(int[]) parameter #0:
    
MissingNullability: android.app.ActivityTaskManager#resizeDockedStack(android.graphics.Rect, android.graphics.Rect) parameter #0:
    
MissingNullability: android.app.ActivityTaskManager#resizeDockedStack(android.graphics.Rect, android.graphics.Rect) parameter #1:
    
MissingNullability: android.app.ActivityTaskManager#resizePinnedStack(int, android.graphics.Rect, boolean) parameter #1:
    
MissingNullability: android.app.ActivityTaskManager#resizeTask(int, android.graphics.Rect) parameter #1:
    
MissingNullability: android.app.ActivityTaskManager#setTaskWindowingModeSplitScreenPrimary(int, int, boolean, boolean, android.graphics.Rect, boolean) parameter #4:
    
MissingNullability: android.app.ActivityTaskManager#supportsMultiWindow(android.content.Context) parameter #0:
    
MissingNullability: android.app.ActivityTaskManager#supportsSplitScreenMultiWindow(android.content.Context) parameter #0:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context) parameter #0:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context, android.util.AttributeSet) parameter #0:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context, android.util.AttributeSet) parameter #1:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context, android.util.AttributeSet, int) parameter #0:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context, android.util.AttributeSet, int) parameter #1:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context, android.util.AttributeSet, int, boolean) parameter #0:
    
MissingNullability: android.app.ActivityView#ActivityView(android.content.Context, android.util.AttributeSet, int, boolean) parameter #1:
    
MissingNullability: android.app.ActivityView#gatherTransparentRegion(android.graphics.Region) parameter #0:
    
MissingNullability: android.app.ActivityView#onVisibilityChanged(android.view.View, int) parameter #0:
    
MissingNullability: android.app.ActivityView#setCallback(android.app.ActivityView.StateCallback) parameter #0:
    
MissingNullability: android.app.ActivityView#setForwardedInsets(android.graphics.Insets) parameter #0:
    
MissingNullability: android.app.ActivityView#startActivity(android.content.Intent, android.os.UserHandle) parameter #1:
    
MissingNullability: android.app.ActivityView.StateCallback#onActivityViewDestroyed(android.app.ActivityView) parameter #0:
    
MissingNullability: android.app.ActivityView.StateCallback#onActivityViewReady(android.app.ActivityView) parameter #0:
    
MissingNullability: android.app.ActivityView.StateCallback#onTaskCreated(int, android.content.ComponentName) parameter #1:
    
MissingNullability: android.app.AppDetailsActivity#onCreate(android.os.Bundle) parameter #0:
    
MissingNullability: android.app.AppOpsManager#getOpStrs():
    
MissingNullability: android.app.AppOpsManager#isOperationActive(int, int, String) parameter #2:
    
MissingNullability: android.app.AppOpsManager#opToPermission(int):
    
MissingNullability: android.app.AppOpsManager#permissionToOpCode(String) parameter #0:
    
MissingNullability: android.app.AppOpsManager#setMode(String, int, String, int) parameter #0:
    
MissingNullability: android.app.AppOpsManager#setMode(String, int, String, int) parameter #2:
    
MissingNullability: android.app.AppOpsManager#setMode(int, int, String, int) parameter #2:
    
MissingNullability: android.app.AppOpsManager#setUidMode(String, int, int) parameter #0:
    
MissingNullability: android.app.AppOpsManager.HistoricalOp#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.AppOpsManager.HistoricalOps#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.AppOpsManager.HistoricalUidOps#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.AppOpsManager.OpEntry#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.NotificationManager#allowAssistantAdjustment(String) parameter #0:
    
MissingNullability: android.app.NotificationManager#disallowAssistantAdjustment(String) parameter #0:
    
MissingNullability: android.app.NotificationManager#getEffectsSuppressor():
    
MissingNullability: android.app.NotificationManager#matchesCallFilter(android.os.Bundle) parameter #0:
    
MissingNullability: android.app.PictureInPictureParams#getActions():
    
MissingNullability: android.app.PictureInPictureParams#getSourceRectHint():
    
MissingNullability: android.app.TimePickerDialog#getTimePicker():
    
MissingNullability: android.app.UiAutomation#executeShellCommandRw(String):
    
MissingNullability: android.app.UiAutomation#executeShellCommandRw(String) parameter #0:
    
MissingNullability: android.app.UiAutomation#grantRuntimePermission(String, String, android.os.UserHandle) parameter #0:
    
MissingNullability: android.app.UiAutomation#grantRuntimePermission(String, String, android.os.UserHandle) parameter #1:
    
MissingNullability: android.app.UiAutomation#grantRuntimePermission(String, String, android.os.UserHandle) parameter #2:
    
MissingNullability: android.app.UiAutomation#revokeRuntimePermission(String, String, android.os.UserHandle) parameter #0:
    
MissingNullability: android.app.UiAutomation#revokeRuntimePermission(String, String, android.os.UserHandle) parameter #1:
    
MissingNullability: android.app.UiAutomation#revokeRuntimePermission(String, String, android.os.UserHandle) parameter #2:
    
MissingNullability: android.app.WallpaperManager#setWallpaperComponent(android.content.ComponentName) parameter #0:
    
MissingNullability: android.app.WindowConfiguration#compareTo(android.app.WindowConfiguration) parameter #0:
    
MissingNullability: android.app.WindowConfiguration#getAppBounds():
    
MissingNullability: android.app.WindowConfiguration#getBounds():
    
MissingNullability: android.app.WindowConfiguration#setAppBounds(android.graphics.Rect) parameter #0:
    
MissingNullability: android.app.WindowConfiguration#setBounds(android.graphics.Rect) parameter #0:
    
MissingNullability: android.app.WindowConfiguration#setTo(android.app.WindowConfiguration) parameter #0:
    
MissingNullability: android.app.WindowConfiguration#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.admin.DevicePolicyManager#getOwnerInstalledCaCerts(android.os.UserHandle):
    
MissingNullability: android.app.admin.SecurityLog.SecurityEvent#SecurityEvent(long, byte[]) parameter #1:
    
MissingNullability: android.app.backup.BackupManager#getConfigurationIntent(String):
    
MissingNullability: android.app.backup.BackupManager#getConfigurationIntent(String) parameter #0:
    
MissingNullability: android.app.backup.BackupManager#getDataManagementIntent(String):
    
MissingNullability: android.app.backup.BackupManager#getDataManagementIntent(String) parameter #0:
    
MissingNullability: android.app.backup.BackupManager#getDestinationString(String):
    
MissingNullability: android.app.backup.BackupManager#getDestinationString(String) parameter #0:
    
MissingNullability: android.app.prediction.AppPredictionSessionId#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.prediction.AppPredictor#getSessionId():
    
MissingNullability: android.app.prediction.AppTarget#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.prediction.AppTargetEvent#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.app.prediction.AppTargetId#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.content.AutofillOptions#forWhitelistingItself():
    
MissingNullability: android.content.AutofillOptions#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.content.ContentCaptureOptions#forWhitelistingItself():
    
MissingNullability: android.content.ContentCaptureOptions#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.content.ContentResolver#getSyncAdapterPackagesForAuthorityAsUser(String, int):
    
MissingNullability: android.content.ContentResolver#getSyncAdapterPackagesForAuthorityAsUser(String, int) parameter #0:
    
MissingNullability: android.content.Context#getDisplay():
    
MissingNullability: android.content.Context#getUser():
    
MissingNullability: android.content.ContextWrapper#getDisplay():
    
MissingNullability: android.content.ContextWrapper#setContentCaptureOptions(android.content.ContentCaptureOptions) parameter #0:
    
MissingNullability: android.content.pm.ActivityInfo#isTranslucentOrFloating(android.content.res.TypedArray) parameter #0:
    
MissingNullability: android.content.pm.LauncherApps#LauncherApps(android.content.Context) parameter #0:
    
MissingNullability: android.content.pm.PackageInstaller.SessionParams#setGrantedRuntimePermissions(String[]) parameter #0:
    
MissingNullability: android.content.pm.PackageManager#getNamesForUids(int[]) parameter #0:
    
MissingNullability: android.content.pm.ShortcutManager#ShortcutManager(android.content.Context) parameter #0:
    
MissingNullability: android.content.res.AssetManager#getOverlayablesToString(String) parameter #0:
    
MissingNullability: android.content.res.Configuration#windowConfiguration:
    
MissingNullability: android.content.rollback.PackageRollbackInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.content.rollback.RollbackInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteDebug#dump(android.util.Printer, String[]) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteDebug#dump(android.util.Printer, String[]) parameter #1:
    
MissingNullability: android.database.sqlite.SQLiteDebug#getDatabaseInfo():
    
MissingNullability: android.database.sqlite.SQLiteDebug.DbStats#DbStats(String, long, long, int, int, int, int) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteDebug.DbStats#cache:
    
MissingNullability: android.database.sqlite.SQLiteDebug.DbStats#dbName:
    
MissingNullability: android.database.sqlite.SQLiteDebug.PagerStats#dbStats:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#SQLiteDirectCursorDriver(android.database.sqlite.SQLiteDatabase, String, String, android.os.CancellationSignal) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#SQLiteDirectCursorDriver(android.database.sqlite.SQLiteDatabase, String, String, android.os.CancellationSignal) parameter #1:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#SQLiteDirectCursorDriver(android.database.sqlite.SQLiteDatabase, String, String, android.os.CancellationSignal) parameter #2:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#SQLiteDirectCursorDriver(android.database.sqlite.SQLiteDatabase, String, String, android.os.CancellationSignal) parameter #3:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#cursorRequeried(android.database.Cursor) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#query(android.database.sqlite.SQLiteDatabase.CursorFactory, String[]):
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#query(android.database.sqlite.SQLiteDatabase.CursorFactory, String[]) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#query(android.database.sqlite.SQLiteDatabase.CursorFactory, String[]) parameter #1:
    
MissingNullability: android.database.sqlite.SQLiteDirectCursorDriver#setBindArguments(String[]) parameter #0:
    
MissingNullability: android.database.sqlite.SQLiteGlobal#getDefaultJournalMode():
    
MissingNullability: android.database.sqlite.SQLiteGlobal#getDefaultSyncMode():
    
MissingNullability: android.database.sqlite.SQLiteGlobal#getWALSyncMode():
    
MissingNullability: android.graphics.ImageDecoder#createSource(android.content.res.Resources, java.io.InputStream, int) parameter #0:
    
MissingNullability: android.graphics.ImageDecoder#createSource(android.content.res.Resources, java.io.InputStream, int) parameter #1:
    
MissingNullability: android.graphics.drawable.AdaptiveIconDrawable#getSafeZone():
    
MissingNullability: android.graphics.drawable.ColorDrawable#getXfermode():
    
MissingNullability: android.hardware.camera2.CameraDevice#createCustomCaptureSession(android.hardware.camera2.params.InputConfiguration, java.util.List<android.hardware.camera2.params.OutputConfiguration>, int, android.hardware.camera2.CameraCaptureSession.StateCallback, android.os.Handler) parameter #0:
    
MissingNullability: android.hardware.camera2.CameraManager#getCameraIdListNoLazy():
    
MissingNullability: android.hardware.display.AmbientBrightnessDayStats#getBucketBoundaries():
    
MissingNullability: android.hardware.display.AmbientBrightnessDayStats#getLocalDate():
    
MissingNullability: android.hardware.display.AmbientBrightnessDayStats#getStats():
    
MissingNullability: android.hardware.display.AmbientBrightnessDayStats#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.hardware.display.AmbientDisplayConfiguration#AmbientDisplayConfiguration(android.content.Context) parameter #0:
    
MissingNullability: android.hardware.display.BrightnessChangeEvent#luxTimestamps:
    
MissingNullability: android.hardware.display.BrightnessChangeEvent#luxValues:
    
MissingNullability: android.hardware.display.BrightnessChangeEvent#packageName:
    
MissingNullability: android.hardware.display.BrightnessChangeEvent#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.hardware.display.BrightnessConfiguration#getCurve():
    
MissingNullability: android.hardware.display.BrightnessConfiguration#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.hardware.display.BrightnessConfiguration.Builder#Builder(float[], float[]) parameter #0:
    
MissingNullability: android.hardware.display.BrightnessConfiguration.Builder#Builder(float[], float[]) parameter #1:
    
MissingNullability: android.hardware.display.BrightnessCorrection#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.hardware.display.DisplayManager#getAmbientBrightnessStats():
    
MissingNullability: android.hardware.display.DisplayManager#getBrightnessConfiguration():
    
MissingNullability: android.hardware.display.DisplayManager#getBrightnessEvents():
    
MissingNullability: android.hardware.display.DisplayManager#getStableDisplaySize():
    
MissingNullability: android.hardware.display.DisplayManager#setBrightnessConfiguration(android.hardware.display.BrightnessConfiguration) parameter #0:
    
MissingNullability: android.location.GnssClock#set(android.location.GnssClock) parameter #0:
    
MissingNullability: android.location.GnssMeasurement#set(android.location.GnssMeasurement) parameter #0:
    
MissingNullability: android.location.GnssMeasurementsEvent#GnssMeasurementsEvent(android.location.GnssClock, android.location.GnssMeasurement[]) parameter #0:
    
MissingNullability: android.location.GnssMeasurementsEvent#GnssMeasurementsEvent(android.location.GnssClock, android.location.GnssMeasurement[]) parameter #1:
    
MissingNullability: android.location.GnssNavigationMessage#set(android.location.GnssNavigationMessage) parameter #0:
    
MissingNullability: android.location.GnssNavigationMessage#setData(byte[]) parameter #0:
    
MissingNullability: android.location.LocationManager#getTestProviderCurrentRequests(String) parameter #0:
    
MissingNullability: android.location.LocationRequest#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.media.AudioFocusInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String) parameter #3:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String) parameter #4:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String) parameter #6:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #10:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #11:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #3:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #4:
    
MissingNullability: android.media.AudioRecordingConfiguration#AudioRecordingConfiguration(int, int, int, android.media.AudioFormat, android.media.AudioFormat, int, String, int, boolean, int, android.media.audiofx.AudioEffect.Descriptor[], android.media.audiofx.AudioEffect.Descriptor[]) parameter #6:
    
MissingNullability: android.media.PlaybackParams#setAudioStretchMode(int):
    
MissingNullability: android.media.audiofx.AudioEffect#EFFECT_TYPE_NULL:
    
MissingNullability: android.media.audiofx.AudioEffect#byteArrayToInt(byte[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#byteArrayToShort(byte[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(byte[], byte[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(byte[], byte[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(int, byte[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(int, int[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(int, short[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(int[], short[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#getParameter(int[], short[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#intToByteArray(int):
    
MissingNullability: android.media.audiofx.AudioEffect#isEffectTypeAvailable(java.util.UUID) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(byte[], byte[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(byte[], byte[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(int, byte[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(int[], byte[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(int[], byte[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(int[], int[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameter(int[], int[]) parameter #1:
    
MissingNullability: android.media.audiofx.AudioEffect#setParameterListener(android.media.audiofx.AudioEffect.OnParameterChangeListener) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect#shortToByteArray(short):
    
MissingNullability: android.media.audiofx.AudioEffect.Descriptor#Descriptor(android.os.Parcel) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect.Descriptor#writeToParcel(android.os.Parcel) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect.OnParameterChangeListener#onParameterChange(android.media.audiofx.AudioEffect, int, byte[], byte[]) parameter #0:
    
MissingNullability: android.media.audiofx.AudioEffect.OnParameterChangeListener#onParameterChange(android.media.audiofx.AudioEffect, int, byte[], byte[]) parameter #2:
    
MissingNullability: android.media.audiofx.AudioEffect.OnParameterChangeListener#onParameterChange(android.media.audiofx.AudioEffect, int, byte[], byte[]) parameter #3:
    
MissingNullability: android.media.audiopolicy.AudioMix.Builder#Builder(android.media.audiopolicy.AudioMixingRule) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioMix.Builder#build():
    
MissingNullability: android.media.audiopolicy.AudioMix.Builder#setDevice(android.media.AudioDeviceInfo):
    
MissingNullability: android.media.audiopolicy.AudioMix.Builder#setFormat(android.media.AudioFormat):
    
MissingNullability: android.media.audiopolicy.AudioMix.Builder#setFormat(android.media.AudioFormat) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioMix.Builder#setRouteFlags(int):
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#addMixRule(int, Object):
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#addMixRule(int, Object) parameter #1:
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#addRule(android.media.AudioAttributes, int):
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#addRule(android.media.AudioAttributes, int) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#build():
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#excludeMixRule(int, Object):
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#excludeMixRule(int, Object) parameter #1:
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#excludeRule(android.media.AudioAttributes, int):
    
MissingNullability: android.media.audiopolicy.AudioMixingRule.Builder#excludeRule(android.media.AudioAttributes, int) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy#createAudioRecordSink(android.media.audiopolicy.AudioMix):
    
MissingNullability: android.media.audiopolicy.AudioPolicy#createAudioRecordSink(android.media.audiopolicy.AudioMix) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy#createAudioTrackSource(android.media.audiopolicy.AudioMix):
    
MissingNullability: android.media.audiopolicy.AudioPolicy#createAudioTrackSource(android.media.audiopolicy.AudioMix) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy#setRegistration(String) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy#toLogFriendlyString():
    
MissingNullability: android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener#onAudioFocusAbandon(android.media.AudioFocusInfo) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener#onAudioFocusGrant(android.media.AudioFocusInfo, int) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener#onAudioFocusLoss(android.media.AudioFocusInfo, boolean) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener#onAudioFocusRequest(android.media.AudioFocusInfo, int) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.AudioPolicyStatusListener#onMixStateUpdate(android.media.audiopolicy.AudioMix) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.Builder#Builder(android.content.Context) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyFocusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener) parameter #0:
    
MissingNullability: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyStatusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyStatusListener) parameter #0:
    
MissingNullability: android.metrics.LogMaker#LogMaker(Object[]) parameter #0:
    
MissingNullability: android.metrics.LogMaker#addTaggedData(int, Object):
    
MissingNullability: android.metrics.LogMaker#addTaggedData(int, Object) parameter #1:
    
MissingNullability: android.metrics.LogMaker#clearCategory():
    
MissingNullability: android.metrics.LogMaker#clearPackageName():
    
MissingNullability: android.metrics.LogMaker#clearSubtype():
    
MissingNullability: android.metrics.LogMaker#clearTaggedData(int):
    
MissingNullability: android.metrics.LogMaker#clearType():
    
MissingNullability: android.metrics.LogMaker#deserialize(Object[]) parameter #0:
    
MissingNullability: android.metrics.LogMaker#getCounterName():
    
MissingNullability: android.metrics.LogMaker#getPackageName():
    
MissingNullability: android.metrics.LogMaker#getTaggedData(int):
    
MissingNullability: android.metrics.LogMaker#isSubsetOf(android.metrics.LogMaker) parameter #0:
    
MissingNullability: android.metrics.LogMaker#isValidValue(Object) parameter #0:
    
MissingNullability: android.metrics.LogMaker#serialize():
    
MissingNullability: android.metrics.LogMaker#setCategory(int):
    
MissingNullability: android.metrics.LogMaker#setPackageName(String):
    
MissingNullability: android.metrics.LogMaker#setPackageName(String) parameter #0:
    
MissingNullability: android.metrics.LogMaker#setSubtype(int):
    
MissingNullability: android.metrics.LogMaker#setType(int):
    
MissingNullability: android.metrics.MetricsReader#next():
    
MissingNullability: android.net.NetworkCapabilities#getCapabilities():
    
MissingNullability: android.net.StaticIpConfiguration#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.net.TestNetworkInterface#CREATOR:
    
MissingNullability: android.net.TestNetworkInterface#TestNetworkInterface(android.os.ParcelFileDescriptor, String) parameter #0:
    
MissingNullability: android.net.TestNetworkInterface#TestNetworkInterface(android.os.ParcelFileDescriptor, String) parameter #1:
    
MissingNullability: android.net.TestNetworkInterface#getFileDescriptor():
    
MissingNullability: android.net.TestNetworkInterface#getInterfaceName():
    
MissingNullability: android.net.TestNetworkInterface#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.net.TestNetworkManager#createTapInterface():
    
MissingNullability: android.net.TestNetworkManager#createTunInterface(android.net.LinkAddress[]):
    
MissingNullability: android.net.apf.ApfCapabilities#CREATOR:
    
MissingNullability: android.net.apf.ApfCapabilities#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.net.metrics.DhcpClientEvent.Builder#setMsg(String) parameter #0:
    
MissingNullability: android.os.Build#is64BitAbi(String) parameter #0:
    
MissingNullability: android.os.Build.VERSION#ACTIVE_CODENAMES:
    
MissingNullability: android.os.Environment#buildPath(java.io.File, java.lang.String...):
    
MissingNullability: android.os.Environment#buildPath(java.io.File, java.lang.String...) parameter #0:
    
MissingNullability: android.os.Environment#buildPath(java.io.File, java.lang.String...) parameter #1:
    
MissingNullability: android.os.FileUtils#contains(java.io.File, java.io.File) parameter #0:
    
MissingNullability: android.os.FileUtils#contains(java.io.File, java.io.File) parameter #1:
    
MissingNullability: android.os.HwBinder#getService(String, String):
    
MissingNullability: android.os.HwBinder#getService(String, String) parameter #0:
    
MissingNullability: android.os.HwBinder#getService(String, String) parameter #1:
    
MissingNullability: android.os.HwBinder#getService(String, String, boolean):
    
MissingNullability: android.os.HwBinder#getService(String, String, boolean) parameter #0:
    
MissingNullability: android.os.HwBinder#getService(String, String, boolean) parameter #1:
    
MissingNullability: android.os.HwBinder#onTransact(int, android.os.HwParcel, android.os.HwParcel, int) parameter #1:
    
MissingNullability: android.os.HwBinder#onTransact(int, android.os.HwParcel, android.os.HwParcel, int) parameter #2:
    
MissingNullability: android.os.HwBinder#registerService(String) parameter #0:
    
MissingNullability: android.os.HwBinder#transact(int, android.os.HwParcel, android.os.HwParcel, int) parameter #1:
    
MissingNullability: android.os.HwBinder#transact(int, android.os.HwParcel, android.os.HwParcel, int) parameter #2:
    
MissingNullability: android.os.HwBlob#copyToBoolArray(long, boolean[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#copyToDoubleArray(long, double[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#copyToFloatArray(long, float[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#copyToInt16Array(long, short[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#copyToInt32Array(long, int[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#copyToInt64Array(long, long[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#copyToInt8Array(long, byte[], int) parameter #1:
    
MissingNullability: android.os.HwBlob#getString(long):
    
MissingNullability: android.os.HwBlob#putBlob(long, android.os.HwBlob) parameter #1:
    
MissingNullability: android.os.HwBlob#putBoolArray(long, boolean[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putDoubleArray(long, double[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putFloatArray(long, float[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putInt16Array(long, short[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putInt32Array(long, int[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putInt64Array(long, long[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putInt8Array(long, byte[]) parameter #1:
    
MissingNullability: android.os.HwBlob#putString(long, String) parameter #1:
    
MissingNullability: android.os.HwBlob#wrapArray(boolean[]):
    
MissingNullability: android.os.HwBlob#wrapArray(byte[]):
    
MissingNullability: android.os.HwBlob#wrapArray(double[]):
    
MissingNullability: android.os.HwBlob#wrapArray(float[]):
    
MissingNullability: android.os.HwBlob#wrapArray(int[]):
    
MissingNullability: android.os.HwBlob#wrapArray(long[]):
    
MissingNullability: android.os.HwBlob#wrapArray(short[]):
    
MissingNullability: android.os.HwParcel#enforceInterface(String) parameter #0:
    
MissingNullability: android.os.HwParcel#readBoolVector():
    
MissingNullability: android.os.HwParcel#readBuffer(long):
    
MissingNullability: android.os.HwParcel#readDoubleVector():
    
MissingNullability: android.os.HwParcel#readEmbeddedBuffer(long, long, long, boolean):
    
MissingNullability: android.os.HwParcel#readFloatVector():
    
MissingNullability: android.os.HwParcel#readInt16Vector():
    
MissingNullability: android.os.HwParcel#readInt32Vector():
    
MissingNullability: android.os.HwParcel#readInt64Vector():
    
MissingNullability: android.os.HwParcel#readInt8Vector():
    
MissingNullability: android.os.HwParcel#readString():
    
MissingNullability: android.os.HwParcel#readStringVector():
    
MissingNullability: android.os.HwParcel#readStrongBinder():
    
MissingNullability: android.os.HwParcel#writeBoolVector(java.util.ArrayList<java.lang.Boolean>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeBuffer(android.os.HwBlob) parameter #0:
    
MissingNullability: android.os.HwParcel#writeDoubleVector(java.util.ArrayList<java.lang.Double>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeFloatVector(java.util.ArrayList<java.lang.Float>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeInt16Vector(java.util.ArrayList<java.lang.Short>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeInt32Vector(java.util.ArrayList<java.lang.Integer>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeInt64Vector(java.util.ArrayList<java.lang.Long>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeInt8Vector(java.util.ArrayList<java.lang.Byte>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeInterfaceToken(String) parameter #0:
    
MissingNullability: android.os.HwParcel#writeString(String) parameter #0:
    
MissingNullability: android.os.HwParcel#writeStringVector(java.util.ArrayList<java.lang.String>) parameter #0:
    
MissingNullability: android.os.HwParcel#writeStrongBinder(android.os.IHwBinder) parameter #0:
    
MissingNullability: android.os.IHwBinder#linkToDeath(android.os.IHwBinder.DeathRecipient, long) parameter #0:
    
MissingNullability: android.os.IHwBinder#queryLocalInterface(String):
    
MissingNullability: android.os.IHwBinder#queryLocalInterface(String) parameter #0:
    
MissingNullability: android.os.IHwBinder#transact(int, android.os.HwParcel, android.os.HwParcel, int) parameter #1:
    
MissingNullability: android.os.IHwBinder#transact(int, android.os.HwParcel, android.os.HwParcel, int) parameter #2:
    
MissingNullability: android.os.IHwBinder#unlinkToDeath(android.os.IHwBinder.DeathRecipient) parameter #0:
    
MissingNullability: android.os.IHwInterface#asBinder():
    
MissingNullability: android.os.IncidentManager#approveReport(android.net.Uri) parameter #0:
    
MissingNullability: android.os.IncidentManager#cancelAuthorization(android.os.IncidentManager.AuthListener) parameter #0:
    
MissingNullability: android.os.IncidentManager#deleteIncidentReports(android.net.Uri) parameter #0:
    
MissingNullability: android.os.IncidentManager#denyReport(android.net.Uri) parameter #0:
    
MissingNullability: android.os.IncidentManager#getIncidentReport(android.net.Uri) parameter #0:
    
MissingNullability: android.os.IncidentManager#getIncidentReportList(String) parameter #0:
    
MissingNullability: android.os.IncidentManager#getPendingReports():
    
MissingNullability: android.os.IncidentManager#reportIncident(android.os.IncidentReportArgs) parameter #0:
    
MissingNullability: android.os.IncidentManager#requestAuthorization(int, String, int, android.os.IncidentManager.AuthListener) parameter #1:
    
MissingNullability: android.os.IncidentManager#requestAuthorization(int, String, int, android.os.IncidentManager.AuthListener) parameter #3:
    
MissingNullability: android.os.IncidentManager.IncidentReport#IncidentReport(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.IncidentManager.IncidentReport#getInputStream():
    
MissingNullability: android.os.IncidentManager.IncidentReport#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.IncidentReportArgs#IncidentReportArgs(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.IncidentReportArgs#addHeader(byte[]) parameter #0:
    
MissingNullability: android.os.IncidentReportArgs#readFromParcel(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.IncidentReportArgs#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.ParcelFileDescriptor#getFile(java.io.FileDescriptor):
    
MissingNullability: android.os.ParcelFileDescriptor#getFile(java.io.FileDescriptor) parameter #0:
    
MissingNullability: android.os.RemoteCallback#RemoteCallback(android.os.RemoteCallback.OnResultListener) parameter #0:
    
MissingNullability: android.os.RemoteCallback#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.StrictMode#setViolationLogger(android.os.StrictMode.ViolationLogger) parameter #0:
    
MissingNullability: android.os.StrictMode.ViolationInfo#ViolationInfo(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.StrictMode.ViolationInfo#ViolationInfo(android.os.Parcel, boolean) parameter #0:
    
MissingNullability: android.os.StrictMode.ViolationInfo#broadcastIntentAction:
    
MissingNullability: android.os.StrictMode.ViolationInfo#dump(android.util.Printer, String) parameter #0:
    
MissingNullability: android.os.StrictMode.ViolationInfo#dump(android.util.Printer, String) parameter #1:
    
MissingNullability: android.os.StrictMode.ViolationInfo#getStackTrace():
    
MissingNullability: android.os.StrictMode.ViolationInfo#getViolationClass():
    
MissingNullability: android.os.StrictMode.ViolationInfo#getViolationDetails():
    
MissingNullability: android.os.StrictMode.ViolationInfo#tags:
    
MissingNullability: android.os.StrictMode.ViolationInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.StrictMode.ViolationLogger#log(android.os.StrictMode.ViolationInfo) parameter #0:
    
MissingNullability: android.os.UserHandle#of(int):
    
MissingNullability: android.os.VibrationEffect#RINGTONES:
    
MissingNullability: android.os.VibrationEffect#get(android.net.Uri, android.content.Context) parameter #0:
    
MissingNullability: android.os.VibrationEffect#get(android.net.Uri, android.content.Context) parameter #1:
    
MissingNullability: android.os.VibrationEffect#get(int):
    
MissingNullability: android.os.VibrationEffect#get(int, boolean):
    
MissingNullability: android.os.VibrationEffect.OneShot#OneShot(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.VibrationEffect.OneShot#scale(float, int):
    
MissingNullability: android.os.VibrationEffect.OneShot#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.VibrationEffect.Prebaked#Prebaked(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.VibrationEffect.Prebaked#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.VibrationEffect.Waveform#Waveform(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.VibrationEffect.Waveform#Waveform(long[], int[], int) parameter #0:
    
MissingNullability: android.os.VibrationEffect.Waveform#Waveform(long[], int[], int) parameter #1:
    
MissingNullability: android.os.VibrationEffect.Waveform#getAmplitudes():
    
MissingNullability: android.os.VibrationEffect.Waveform#getTimings():
    
MissingNullability: android.os.VibrationEffect.Waveform#scale(float, int):
    
MissingNullability: android.os.VibrationEffect.Waveform#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.VintfObject#getHalNamesAndVersions():
    
MissingNullability: android.os.VintfObject#getSepolicyVersion():
    
MissingNullability: android.os.VintfObject#getTargetFrameworkCompatibilityMatrixVersion():
    
MissingNullability: android.os.VintfObject#getVndkSnapshots():
    
MissingNullability: android.os.VintfObject#report():
    
MissingNullability: android.os.VintfRuntimeInfo#getCpuInfo():
    
MissingNullability: android.os.VintfRuntimeInfo#getHardwareId():
    
MissingNullability: android.os.VintfRuntimeInfo#getKernelVersion():
    
MissingNullability: android.os.VintfRuntimeInfo#getNodeName():
    
MissingNullability: android.os.VintfRuntimeInfo#getOsName():
    
MissingNullability: android.os.VintfRuntimeInfo#getOsRelease():
    
MissingNullability: android.os.VintfRuntimeInfo#getOsVersion():
    
MissingNullability: android.os.WorkSource#add(int, String) parameter #1:
    
MissingNullability: android.os.WorkSource#addReturningNewbs(android.os.WorkSource) parameter #0:
    
MissingNullability: android.os.WorkSource#getName(int):
    
MissingNullability: android.os.WorkSource#setReturningDiffs(android.os.WorkSource) parameter #0:
    
MissingNullability: android.os.health.HealthKeys.Constants#Constants(Class) parameter #0:
    
MissingNullability: android.os.health.HealthKeys.Constants#getDataType():
    
MissingNullability: android.os.health.HealthKeys.Constants#getKeys(int):
    
MissingNullability: android.os.health.HealthStats#HealthStats(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.health.HealthStatsParceler#HealthStatsParceler(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.health.HealthStatsParceler#HealthStatsParceler(android.os.health.HealthStatsWriter) parameter #0:
    
MissingNullability: android.os.health.HealthStatsParceler#getHealthStats():
    
MissingNullability: android.os.health.HealthStatsParceler#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.os.health.HealthStatsWriter#HealthStatsWriter(android.os.health.HealthKeys.Constants) parameter #0:
    
MissingNullability: android.os.health.HealthStatsWriter#addMeasurements(int, String, long) parameter #1:
    
MissingNullability: android.os.health.HealthStatsWriter#addStats(int, String, android.os.health.HealthStatsWriter) parameter #1:
    
MissingNullability: android.os.health.HealthStatsWriter#addStats(int, String, android.os.health.HealthStatsWriter) parameter #2:
    
MissingNullability: android.os.health.HealthStatsWriter#addTimers(int, String, android.os.health.TimerStat) parameter #1:
    
MissingNullability: android.os.health.HealthStatsWriter#addTimers(int, String, android.os.health.TimerStat) parameter #2:
    
MissingNullability: android.os.health.HealthStatsWriter#flattenToParcel(android.os.Parcel) parameter #0:
    
MissingNullability: android.os.storage.StorageVolume#getPath():
    
MissingNullability: android.permission.RuntimePermissionPresentationInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.provider.CalendarContract.Calendars#SYNC_WRITABLE_COLUMNS:
    
MissingNullability: android.provider.CalendarContract.Events#SYNC_WRITABLE_COLUMNS:
    
MissingNullability: android.provider.ContactsContract.CommonDataKinds.Phone#ENTERPRISE_CONTENT_URI:
    
MissingNullability: android.provider.ContactsContract.RawContactsEntity#CORP_CONTENT_URI:
    
MissingNullability: android.provider.DeviceConfig#getProperty(String, String):
    
MissingNullability: android.provider.DeviceConfig#getString(String, String, String):
    
MissingNullability: android.provider.MediaStore#deleteContributedMedia(android.content.Context, String, android.os.UserHandle) parameter #0:
    
MissingNullability: android.provider.MediaStore#deleteContributedMedia(android.content.Context, String, android.os.UserHandle) parameter #1:
    
MissingNullability: android.provider.MediaStore#deleteContributedMedia(android.content.Context, String, android.os.UserHandle) parameter #2:
    
MissingNullability: android.provider.MediaStore#getContributedMediaSize(android.content.Context, String, android.os.UserHandle) parameter #0:
    
MissingNullability: android.provider.MediaStore#getContributedMediaSize(android.content.Context, String, android.os.UserHandle) parameter #1:
    
MissingNullability: android.provider.MediaStore#getContributedMediaSize(android.content.Context, String, android.os.UserHandle) parameter #2:
    
MissingNullability: android.provider.MediaStore#scanFile(android.content.Context, java.io.File):
    
MissingNullability: android.provider.MediaStore#scanFile(android.content.Context, java.io.File) parameter #0:
    
MissingNullability: android.provider.MediaStore#scanFile(android.content.Context, java.io.File) parameter #1:
    
MissingNullability: android.provider.MediaStore#scanFileFromShell(android.content.Context, java.io.File):
    
MissingNullability: android.provider.MediaStore#scanFileFromShell(android.content.Context, java.io.File) parameter #0:
    
MissingNullability: android.provider.MediaStore#scanFileFromShell(android.content.Context, java.io.File) parameter #1:
    
MissingNullability: android.provider.MediaStore#scanVolume(android.content.Context, java.io.File) parameter #0:
    
MissingNullability: android.provider.MediaStore#scanVolume(android.content.Context, java.io.File) parameter #1:
    
MissingNullability: android.provider.MediaStore#waitForIdle(android.content.Context) parameter #0:
    
MissingNullability: android.security.KeyStoreException#KeyStoreException(int, String) parameter #1:
    
MissingNullability: android.security.keystore.AttestationUtils#attestDeviceIds(android.content.Context, int[], byte[]) parameter #0:
    
MissingNullability: android.security.keystore.KeyProtection.Builder#setBoundToSpecificSecureUserId(long):
    
MissingNullability: android.service.autofill.AutofillFieldClassificationService#onBind(android.content.Intent):
    
MissingNullability: android.service.autofill.AutofillFieldClassificationService#onBind(android.content.Intent) parameter #0:
    
MissingNullability: android.service.autofill.CompositeUserData#getCategoryIds():
    
MissingNullability: android.service.autofill.CompositeUserData#getDefaultFieldClassificationArgs():
    
MissingNullability: android.service.autofill.CompositeUserData#getFieldClassificationAlgorithms():
    
MissingNullability: android.service.autofill.CompositeUserData#getFieldClassificationArgs():
    
MissingNullability: android.service.autofill.CompositeUserData#getValues():
    
MissingNullability: android.service.autofill.CompositeUserData#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.service.autofill.UserData#getFieldClassificationAlgorithms():
    
MissingNullability: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #0:
    
MissingNullability: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
    
MissingNullability: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #2:
    
MissingNullability: android.service.autofill.augmented.AugmentedAutofillService#onUnbind(android.content.Intent) parameter #0:
    
MissingNullability: android.service.contentcapture.ContentCaptureService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #0:
    
MissingNullability: android.service.contentcapture.ContentCaptureService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #1:
    
MissingNullability: android.service.contentcapture.ContentCaptureService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #2:
    
MissingNullability: android.service.notification.Adjustment#Adjustment(String, String, android.os.Bundle, CharSequence, int) parameter #0:
    
MissingNullability: android.service.notification.Adjustment#Adjustment(String, String, android.os.Bundle, CharSequence, int) parameter #1:
    
MissingNullability: android.service.notification.Adjustment#Adjustment(String, String, android.os.Bundle, CharSequence, int) parameter #2:
    
MissingNullability: android.service.notification.Adjustment#Adjustment(String, String, android.os.Bundle, CharSequence, int) parameter #3:
    
MissingNullability: android.service.notification.Adjustment#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.service.notification.NotificationAssistantService#attachBaseContext(android.content.Context) parameter #0:
    
MissingNullability: android.service.notification.NotificationStats#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.service.notification.SnoozeCriterion#SnoozeCriterion(String, CharSequence, CharSequence) parameter #0:
    
MissingNullability: android.service.notification.SnoozeCriterion#SnoozeCriterion(String, CharSequence, CharSequence) parameter #1:
    
MissingNullability: android.service.notification.SnoozeCriterion#SnoozeCriterion(String, CharSequence, CharSequence) parameter #2:
    
MissingNullability: android.service.notification.SnoozeCriterion#SnoozeCriterion(android.os.Parcel) parameter #0:
    
MissingNullability: android.service.notification.SnoozeCriterion#getConfirmation():
    
MissingNullability: android.service.notification.SnoozeCriterion#getExplanation():
    
MissingNullability: android.service.notification.SnoozeCriterion#getId():
    
MissingNullability: android.service.notification.SnoozeCriterion#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telecom.Call.Details#getTelecomCallId():
    
MissingNullability: android.telecom.CallScreeningService.CallResponse.Builder#setShouldScreenCallFurther(boolean):
    
MissingNullability: android.telecom.Conference#getPrimaryConnection():
    
MissingNullability: android.telecom.PhoneAccountSuggestionService#onBind(android.content.Intent):
    
MissingNullability: android.telecom.PhoneAccountSuggestionService#onBind(android.content.Intent) parameter #0:
    
MissingNullability: android.telephony.CallQuality#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.DataSpecificRegistrationInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.LteVopsSupportInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.NetworkRegistrationInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.ServiceState#addNetworkRegistrationInfo(android.telephony.NetworkRegistrationInfo) parameter #0:
    
MissingNullability: android.telephony.ServiceState#setCellBandwidths(int[]) parameter #0:
    
MissingNullability: android.telephony.SmsManager#checkSmsShortCodeDestination(String, String) parameter #0:
    
MissingNullability: android.telephony.SmsManager#checkSmsShortCodeDestination(String, String) parameter #1:
    
MissingNullability: android.telephony.TelephonyManager#checkCarrierPrivilegesForPackage(String) parameter #0:
    
MissingNullability: android.telephony.TelephonyManager#getCarrierPackageNamesForIntent(android.content.Intent):
    
MissingNullability: android.telephony.TelephonyManager#getCarrierPackageNamesForIntent(android.content.Intent) parameter #0:
    
MissingNullability: android.telephony.TelephonyManager#getLine1AlphaTag():
    
MissingNullability: android.telephony.TelephonyManager#getRadioHalVersion():
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #0:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #1:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #2:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #3:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #4:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #5:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String) parameter #6:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #0:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #1:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #2:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #3:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #4:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #5:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #6:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #7:
    
MissingNullability: android.telephony.TelephonyManager#setCarrierTestOverride(String, String, String, String, String, String, String, String, String) parameter #8:
    
MissingNullability: android.telephony.ims.ImsCallForwardInfo#getNumber():
    
MissingNullability: android.telephony.ims.ImsCallForwardInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#ImsCallProfile(int, int, android.os.Bundle, android.telephony.ims.ImsStreamMediaProfile) parameter #2:
    
MissingNullability: android.telephony.ims.ImsCallProfile#ImsCallProfile(int, int, android.os.Bundle, android.telephony.ims.ImsStreamMediaProfile) parameter #3:
    
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String):
    
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String, String):
    
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String, String) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtra(String, String) parameter #1:
    
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtraBoolean(String) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtraBoolean(String, boolean) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtraInt(String) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtraInt(String, int) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#getCallExtras():
    
MissingNullability: android.telephony.ims.ImsCallProfile#getMediaProfile():
    
MissingNullability: android.telephony.ims.ImsCallProfile#getVideoStateFromImsCallProfile(android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#setCallExtra(String, String) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#setCallExtra(String, String) parameter #1:
    
MissingNullability: android.telephony.ims.ImsCallProfile#setCallExtraBoolean(String, boolean) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#setCallExtraInt(String, int) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#updateCallExtras(android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#updateCallType(android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#updateMediaProfile(android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallProfile#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtendFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtendReceived(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtendReceived(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #1:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtended(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceExtended(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #1:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionConferenceStateUpdated(android.telephony.ims.ImsConferenceState) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHandover(int, int, android.telephony.ims.ImsReasonInfo) parameter #2:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHandoverFailed(int, int, android.telephony.ims.ImsReasonInfo) parameter #2:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHeld(android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHoldFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionHoldReceived(android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionInitiated(android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionInitiatedFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionInviteParticipantsRequestFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionMergeComplete(android.telephony.ims.stub.ImsCallSessionImplBase) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionMergeFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionMergeStarted(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionMergeStarted(android.telephony.ims.stub.ImsCallSessionImplBase, android.telephony.ims.ImsCallProfile) parameter #1:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionProgressing(android.telephony.ims.ImsStreamMediaProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionRemoveParticipantsRequestFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionResumeFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionResumeReceived(android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionResumed(android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionRttMessageReceived(String) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionRttModifyRequestReceived(android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionSuppServiceReceived(android.telephony.ims.ImsSuppServiceNotification) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionTerminated(android.telephony.ims.ImsReasonInfo) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionUpdateFailed(android.telephony.ims.ImsReasonInfo) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionUpdateReceived(android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionUpdated(android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsCallSessionListener#callSessionUssdMessageReceived(int, String) parameter #1:
    
MissingNullability: android.telephony.ims.ImsConferenceState#getConnectionStateForStatus(String) parameter #0:
    
MissingNullability: android.telephony.ims.ImsConferenceState#mParticipants:
    
MissingNullability: android.telephony.ims.ImsConferenceState#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.ims.ImsExternalCallState#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.ims.ImsReasonInfo#ImsReasonInfo(int, int, String) parameter #2:
    
MissingNullability: android.telephony.ims.ImsReasonInfo#getExtraMessage():
    
MissingNullability: android.telephony.ims.ImsReasonInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.ims.ImsService#createMmTelFeature(int):
    
MissingNullability: android.telephony.ims.ImsService#createRcsFeature(int):
    
MissingNullability: android.telephony.ims.ImsService#getConfig(int):
    
MissingNullability: android.telephony.ims.ImsService#getRegistration(int):
    
MissingNullability: android.telephony.ims.ImsService#onUpdateSupportedImsFeatures(android.telephony.ims.stub.ImsFeatureConfiguration) parameter #0:
    
MissingNullability: android.telephony.ims.ImsService#querySupportedImsFeatures():
    
MissingNullability: android.telephony.ims.ImsSsData#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.ims.ImsSsInfo#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.ims.ImsStreamMediaProfile#copyFrom(android.telephony.ims.ImsStreamMediaProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsStreamMediaProfile#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.ims.ImsSuppServiceNotification#ImsSuppServiceNotification(int, int, int, int, String, String[]) parameter #4:
    
MissingNullability: android.telephony.ims.ImsSuppServiceNotification#ImsSuppServiceNotification(int, int, int, int, String, String[]) parameter #5:
    
MissingNullability: android.telephony.ims.ImsSuppServiceNotification#history:
    
MissingNullability: android.telephony.ims.ImsSuppServiceNotification#number:
    
MissingNullability: android.telephony.ims.ImsSuppServiceNotification#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.ims.ImsUtListener#onSupplementaryServiceIndication(android.telephony.ims.ImsSsData) parameter #0:
    
MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationCallBarringQueried(int, android.telephony.ims.ImsSsInfo[]) parameter #1:
    
MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationCallForwardQueried(int, android.telephony.ims.ImsCallForwardInfo[]) parameter #1:
    
MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationCallWaitingQueried(int, android.telephony.ims.ImsSsInfo[]) parameter #1:
    
MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationQueried(int, android.os.Bundle) parameter #1:
    
MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationQueryFailed(int, android.telephony.ims.ImsReasonInfo) parameter #1:
    
MissingNullability: android.telephony.ims.ImsUtListener#onUtConfigurationUpdateFailed(int, android.telephony.ims.ImsReasonInfo) parameter #1:
    
MissingNullability: android.telephony.ims.ImsVideoCallProvider#changeCameraCapabilities(android.telecom.VideoProfile.CameraCapabilities) parameter #0:
    
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSendSessionModifyRequest(android.telecom.VideoProfile, android.telecom.VideoProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSendSessionModifyRequest(android.telecom.VideoProfile, android.telecom.VideoProfile) parameter #1:
    
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSendSessionModifyResponse(android.telecom.VideoProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetCamera(String) parameter #0:
    
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetCamera(String, int) parameter #0:
    
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetDisplaySurface(android.view.Surface) parameter #0:
    
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetPauseImage(android.net.Uri) parameter #0:
    
MissingNullability: android.telephony.ims.ImsVideoCallProvider#onSetPreviewSurface(android.view.Surface) parameter #0:
    
MissingNullability: android.telephony.ims.ImsVideoCallProvider#receiveSessionModifyRequest(android.telecom.VideoProfile) parameter #0:
    
MissingNullability: android.telephony.ims.ImsVideoCallProvider#receiveSessionModifyResponse(int, android.telecom.VideoProfile, android.telecom.VideoProfile) parameter #1:
    
MissingNullability: android.telephony.ims.ImsVideoCallProvider#receiveSessionModifyResponse(int, android.telecom.VideoProfile, android.telecom.VideoProfile) parameter #2:
    
MissingNullability: android.telephony.ims.feature.CapabilityChangeRequest#getCapabilitiesToDisable():
    
MissingNullability: android.telephony.ims.feature.CapabilityChangeRequest#getCapabilitiesToEnable():
    
MissingNullability: android.telephony.ims.feature.CapabilityChangeRequest#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.ims.feature.ImsFeature#changeEnabledCapabilities(android.telephony.ims.feature.CapabilityChangeRequest, android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy) parameter #0:
    
MissingNullability: android.telephony.ims.feature.ImsFeature#changeEnabledCapabilities(android.telephony.ims.feature.CapabilityChangeRequest, android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy) parameter #1:
    
MissingNullability: android.telephony.ims.feature.MmTelFeature#queryCapabilityStatus():
    
MissingNullability: android.telephony.ims.feature.MmTelFeature.MmTelCapabilities#MmTelCapabilities(android.telephony.ims.feature.ImsFeature.Capabilities) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#accept(int, android.telephony.ims.ImsStreamMediaProfile) parameter #1:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#deflect(String) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#extendToConference(String[]) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getCallId():
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getCallProfile():
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getImsVideoCallProvider():
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getLocalCallProfile():
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getProperty(String):
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getProperty(String) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#getRemoteCallProfile():
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#hold(android.telephony.ims.ImsStreamMediaProfile) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#inviteParticipants(String[]) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#removeParticipants(String[]) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#resume(android.telephony.ims.ImsStreamMediaProfile) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#sendDtmf(char, android.os.Message) parameter #1:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#sendRttMessage(String) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#sendRttModifyRequest(android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#sendUssd(String) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#setListener(android.telephony.ims.ImsCallSessionListener) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#start(String, android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#start(String, android.telephony.ims.ImsCallProfile) parameter #1:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#startConference(String[], android.telephony.ims.ImsCallProfile) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#startConference(String[], android.telephony.ims.ImsCallProfile) parameter #1:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase#update(int, android.telephony.ims.ImsStreamMediaProfile) parameter #1:
    
MissingNullability: android.telephony.ims.stub.ImsCallSessionImplBase.State#toString(int):
    
MissingNullability: android.telephony.ims.stub.ImsConfigImplBase#getConfigString(int):
    
MissingNullability: android.telephony.ims.stub.ImsConfigImplBase#notifyProvisionedValueChanged(int, String) parameter #1:
    
MissingNullability: android.telephony.ims.stub.ImsConfigImplBase#setConfig(int, String) parameter #1:
    
MissingNullability: android.telephony.ims.stub.ImsFeatureConfiguration#getServiceFeatures():
    
MissingNullability: android.telephony.ims.stub.ImsFeatureConfiguration#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsFeatureConfiguration.Builder#addFeature(int, int):
    
MissingNullability: android.telephony.ims.stub.ImsFeatureConfiguration.Builder#build():
    
MissingNullability: android.telephony.ims.stub.ImsMultiEndpointImplBase#onImsExternalCallStateUpdate(java.util.List<android.telephony.ims.ImsExternalCallState>) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsRegistrationImplBase#onDeregistered(android.telephony.ims.ImsReasonInfo) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsRegistrationImplBase#onSubscriberAssociatedUriChanged(android.net.Uri[]) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsRegistrationImplBase#onTechnologyChangeFailed(int, android.telephony.ims.ImsReasonInfo) parameter #1:
    
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#getSmsFormat():
    
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsReceived(int, String, byte[]) parameter #1:
    
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsReceived(int, String, byte[]) parameter #2:
    
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsStatusReportReceived(int, String, byte[]) parameter #1:
    
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsStatusReportReceived(int, String, byte[]) parameter #2:
    
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsStatusReportReceived(int, int, String, byte[]) parameter #2:
    
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#onSmsStatusReportReceived(int, int, String, byte[]) parameter #3:
    
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#sendSms(int, int, String, String, boolean, byte[]) parameter #2:
    
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#sendSms(int, int, String, String, boolean, byte[]) parameter #3:
    
MissingNullability: android.telephony.ims.stub.ImsSmsImplBase#sendSms(int, int, String, String, boolean, byte[]) parameter #5:
    
MissingNullability: android.telephony.ims.stub.ImsUtImplBase#queryCallForward(int, String) parameter #1:
    
MissingNullability: android.telephony.ims.stub.ImsUtImplBase#setListener(android.telephony.ims.ImsUtListener) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsUtImplBase#transact(android.os.Bundle) parameter #0:
    
MissingNullability: android.telephony.ims.stub.ImsUtImplBase#updateCallBarring(int, int, String[]) parameter #2:
    
MissingNullability: android.telephony.ims.stub.ImsUtImplBase#updateCallBarringForServiceClass(int, int, String[], int) parameter #2:
    
MissingNullability: android.telephony.ims.stub.ImsUtImplBase#updateCallForward(int, int, String, int, int) parameter #2:
    
MissingNullability: android.telephony.mbms.DownloadRequest.Builder#setServiceId(String):
    
MissingNullability: android.telephony.mbms.DownloadRequest.Builder#setServiceId(String) parameter #0:
    
MissingNullability: android.telephony.mbms.FileInfo#FileInfo(android.net.Uri, String) parameter #0:
    
MissingNullability: android.telephony.mbms.FileInfo#FileInfo(android.net.Uri, String) parameter #1:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #0:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #1:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #2:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #3:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #4:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #5:
    
MissingNullability: android.telephony.mbms.FileServiceInfo#FileServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date, java.util.List<android.telephony.mbms.FileInfo>) parameter #6:
    
MissingNullability: android.telephony.mbms.StreamingServiceInfo#StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date) parameter #0:
    
MissingNullability: android.telephony.mbms.StreamingServiceInfo#StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date) parameter #1:
    
MissingNullability: android.telephony.mbms.StreamingServiceInfo#StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date) parameter #2:
    
MissingNullability: android.telephony.mbms.StreamingServiceInfo#StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date) parameter #3:
    
MissingNullability: android.telephony.mbms.StreamingServiceInfo#StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date) parameter #4:
    
MissingNullability: android.telephony.mbms.StreamingServiceInfo#StreamingServiceInfo(java.util.Map<java.util.Locale,java.lang.String>, String, java.util.List<java.util.Locale>, String, java.util.Date, java.util.Date) parameter #5:
    
MissingNullability: android.telephony.mbms.UriPathPair#getContentUri():
    
MissingNullability: android.telephony.mbms.UriPathPair#getFilePathUri():
    
MissingNullability: android.telephony.mbms.UriPathPair#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#asBinder():
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#cancelDownload(android.telephony.mbms.DownloadRequest) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#download(android.telephony.mbms.DownloadRequest) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#initialize(int, android.telephony.mbms.MbmsDownloadSessionCallback) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#onTransact(int, android.os.Parcel, android.os.Parcel, int) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#onTransact(int, android.os.Parcel, android.os.Parcel, int) parameter #2:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#removeProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#removeProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#removeStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#removeStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#requestDownloadState(android.telephony.mbms.DownloadRequest, android.telephony.mbms.FileInfo) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#requestDownloadState(android.telephony.mbms.DownloadRequest, android.telephony.mbms.FileInfo) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#requestUpdateFileServices(int, java.util.List<java.lang.String>) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#resetDownloadKnowledge(android.telephony.mbms.DownloadRequest) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsDownloadServiceBase#setTempFileRootDirectory(int, String) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#onBind(android.content.Intent):
    
MissingNullability: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#onBind(android.content.Intent) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#asBinder():
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#getPlaybackUri(int, String) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#initialize(android.telephony.mbms.MbmsStreamingSessionCallback, int) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#onTransact(int, android.os.Parcel, android.os.Parcel, int) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#onTransact(int, android.os.Parcel, android.os.Parcel, int) parameter #2:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#requestUpdateStreamingServices(int, java.util.List<java.lang.String>) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#startStreaming(int, String, android.telephony.mbms.StreamingServiceCallback) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#startStreaming(int, String, android.telephony.mbms.StreamingServiceCallback) parameter #2:
    
MissingNullability: android.telephony.mbms.vendor.MbmsStreamingServiceBase#stopStreaming(int, String) parameter #1:
    
MissingNullability: android.telephony.mbms.vendor.VendorUtils#getAppReceiverFromPackageName(android.content.Context, String):
    
MissingNullability: android.telephony.mbms.vendor.VendorUtils#getAppReceiverFromPackageName(android.content.Context, String) parameter #0:
    
MissingNullability: android.telephony.mbms.vendor.VendorUtils#getAppReceiverFromPackageName(android.content.Context, String) parameter #1:
    
MissingNullability: android.text.Selection.MemoryTextWatcher#afterTextChanged(android.text.Editable) parameter #0:
    
MissingNullability: android.text.Selection.MemoryTextWatcher#beforeTextChanged(CharSequence, int, int, int) parameter #0:
    
MissingNullability: android.text.Selection.MemoryTextWatcher#onTextChanged(CharSequence, int, int, int) parameter #0:
    
MissingNullability: android.transition.TransitionManager#getTransition(android.transition.Scene):
    
MissingNullability: android.transition.TransitionManager#getTransition(android.transition.Scene) parameter #0:
    
MissingNullability: android.util.FeatureFlagUtils#getAllFeatureFlags():
    
MissingNullability: android.util.FeatureFlagUtils#isEnabled(android.content.Context, String) parameter #0:
    
MissingNullability: android.util.FeatureFlagUtils#isEnabled(android.content.Context, String) parameter #1:
    
MissingNullability: android.util.FeatureFlagUtils#setEnabled(android.content.Context, String, boolean) parameter #0:
    
MissingNullability: android.util.FeatureFlagUtils#setEnabled(android.content.Context, String, boolean) parameter #1:
    
MissingNullability: android.util.TimeUtils#formatDuration(long):
    
MissingNullability: android.util.proto.EncodedBuffer#dumpBuffers(String) parameter #0:
    
MissingNullability: android.util.proto.EncodedBuffer#dumpByteString(String, String, byte[]) parameter #0:
    
MissingNullability: android.util.proto.EncodedBuffer#dumpByteString(String, String, byte[]) parameter #1:
    
MissingNullability: android.util.proto.EncodedBuffer#dumpByteString(String, String, byte[]) parameter #2:
    
MissingNullability: android.util.proto.EncodedBuffer#getBytes(int):
    
MissingNullability: android.util.proto.EncodedBuffer#getDebugString():
    
MissingNullability: android.util.proto.EncodedBuffer#writeRawBuffer(byte[]) parameter #0:
    
MissingNullability: android.util.proto.EncodedBuffer#writeRawBuffer(byte[], int, int) parameter #0:
    
MissingNullability: android.util.proto.ProtoOutputStream#ProtoOutputStream(java.io.FileDescriptor) parameter #0:
    
MissingNullability: android.util.proto.ProtoOutputStream#ProtoOutputStream(java.io.OutputStream) parameter #0:
    
MissingNullability: android.util.proto.ProtoOutputStream#dump(String) parameter #0:
    
MissingNullability: android.util.proto.ProtoOutputStream#getBytes():
    
MissingNullability: android.util.proto.ProtoOutputStream#write(long, String) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#write(long, byte[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writeBytes(long, byte[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writeObject(long, byte[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedBool(long, boolean[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedDouble(long, double[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedEnum(long, int[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedFixed32(long, int[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedFixed64(long, long[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedFloat(long, float[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedInt32(long, int[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedInt64(long, long[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedSFixed32(long, int[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedSFixed64(long, long[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedSInt32(long, int[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedSInt64(long, long[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedUInt32(long, int[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writePackedUInt64(long, long[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writeRepeatedBytes(long, byte[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writeRepeatedObject(long, byte[]) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writeRepeatedString(long, String) parameter #1:
    
MissingNullability: android.util.proto.ProtoOutputStream#writeString(long, String) parameter #1:
    
MissingNullability: android.util.proto.ProtoParseException#ProtoParseException(String) parameter #0:
    
MissingNullability: android.util.proto.ProtoStream#FIELD_TYPE_NAMES:
    
MissingNullability: android.util.proto.ProtoStream#getFieldCountString(long):
    
MissingNullability: android.util.proto.ProtoStream#getFieldIdString(long):
    
MissingNullability: android.util.proto.ProtoStream#getFieldTypeString(long):
    
MissingNullability: android.util.proto.ProtoStream#getWireTypeString(int):
    
MissingNullability: android.util.proto.ProtoStream#token2String(long):
    
MissingNullability: android.util.proto.WireTypeMismatchException#WireTypeMismatchException(String) parameter #0:
    
MissingNullability: android.view.Choreographer#postCallback(int, Runnable, Object) parameter #1:
    
MissingNullability: android.view.Choreographer#postCallback(int, Runnable, Object) parameter #2:
    
MissingNullability: android.view.Choreographer#postCallbackDelayed(int, Runnable, Object, long) parameter #1:
    
MissingNullability: android.view.Choreographer#postCallbackDelayed(int, Runnable, Object, long) parameter #2:
    
MissingNullability: android.view.Choreographer#removeCallbacks(int, Runnable, Object) parameter #1:
    
MissingNullability: android.view.Choreographer#removeCallbacks(int, Runnable, Object) parameter #2:
    
MissingNullability: android.view.FocusFinder#sort(android.view.View[], int, int, android.view.ViewGroup, boolean) parameter #0:
    
MissingNullability: android.view.FocusFinder#sort(android.view.View[], int, int, android.view.ViewGroup, boolean) parameter #3:
    
MissingNullability: android.view.KeyEvent#actionToString(int):
    
MissingNullability: android.view.SurfaceControlViewHost#SurfaceControlViewHost(android.content.Context, android.view.Display, android.view.SurfaceControl) parameter #0:
    
MissingNullability: android.view.SurfaceControlViewHost#SurfaceControlViewHost(android.content.Context, android.view.Display, android.view.SurfaceControl) parameter #1:
    
MissingNullability: android.view.SurfaceControlViewHost#SurfaceControlViewHost(android.content.Context, android.view.Display, android.view.SurfaceControl) parameter #2:
    
MissingNullability: android.view.SurfaceControlViewHost#addView(android.view.View, android.view.WindowManager.LayoutParams) parameter #0:
    
MissingNullability: android.view.SurfaceControlViewHost#addView(android.view.View, android.view.WindowManager.LayoutParams) parameter #1:
    
MissingNullability: android.view.SurfaceControlViewHost#relayout(android.view.WindowManager.LayoutParams) parameter #0:
    
MissingNullability: android.view.View#getTooltipView():
    
MissingNullability: android.view.View#isDefaultFocusHighlightNeeded(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable) parameter #0:
    
MissingNullability: android.view.View#isDefaultFocusHighlightNeeded(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable) parameter #1:
    
MissingNullability: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.concurrent.Callable<java.io.OutputStream>) parameter #0:
    
MissingNullability: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.concurrent.Callable<java.io.OutputStream>) parameter #1:
    
MissingNullability: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.concurrent.Callable<java.io.OutputStream>) parameter #2:
    
MissingNullability: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.function.Function<android.graphics.Picture,java.lang.Boolean>) parameter #0:
    
MissingNullability: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.function.Function<android.graphics.Picture,java.lang.Boolean>) parameter #1:
    
MissingNullability: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.function.Function<android.graphics.Picture,java.lang.Boolean>) parameter #2:
    
MissingNullability: android.view.WindowManager.LayoutParams#accessibilityTitle:
    
MissingNullability: android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener#onAccessibilityServicesStateChanged(android.view.accessibility.AccessibilityManager) parameter #0:
    
MissingNullability: android.view.accessibility.AccessibilityNodeInfo#setNumInstancesInUseCounter(java.util.concurrent.atomic.AtomicInteger) parameter #0:
    
MissingNullability: android.view.accessibility.AccessibilityNodeInfo#writeToParcelNoRecycle(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.view.accessibility.AccessibilityWindowInfo#setNumInstancesInUseCounter(java.util.concurrent.atomic.AtomicInteger) parameter #0:
    
MissingNullability: android.view.contentcapture.ContentCaptureEvent#writeToParcel(android.os.Parcel, int) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#asyncNewChild(int):
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#getAutofillId():
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#getExtras():
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#getHint():
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#getNode():
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#getTempRect():
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#getText():
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#newChild(int):
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#newHtmlInfoBuilder(String):
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#newHtmlInfoBuilder(String) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setAutofillHints(String[]) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setAutofillId(android.view.autofill.AutofillId) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setAutofillId(android.view.autofill.AutofillId, int) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setAutofillOptions(CharSequence[]) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setAutofillValue(android.view.autofill.AutofillValue) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setClassName(String) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setContentDescription(CharSequence) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setHint(CharSequence) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setHintIdEntry(String) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setHtmlInfo(android.view.ViewStructure.HtmlInfo) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setId(int, String, String, String) parameter #1:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setId(int, String, String, String) parameter #2:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setId(int, String, String, String) parameter #3:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setLocaleList(android.os.LocaleList) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setText(CharSequence) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setText(CharSequence, int, int) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setTextLines(int[], int[]) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setTextLines(int[], int[]) parameter #1:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setTransformation(android.graphics.Matrix) parameter #0:
    
MissingNullability: android.view.contentcapture.ViewNode.ViewStructureImpl#setWebDomain(String) parameter #0:
    
MissingNullability: android.widget.CalendarView#getBoundsForDate(long, android.graphics.Rect) parameter #1:
    
MissingNullability: android.widget.ImageView#isDefaultFocusHighlightNeeded(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable) parameter #0:
    
MissingNullability: android.widget.ImageView#isDefaultFocusHighlightNeeded(android.graphics.drawable.Drawable, android.graphics.drawable.Drawable) parameter #1:
    
MissingNullability: android.widget.Magnifier#getMagnifierDefaultSize():
    
MissingNullability: android.widget.Magnifier#setOnOperationCompleteCallback(android.widget.Magnifier.Callback) parameter #0:
    
MissingNullability: android.widget.NumberPicker#getDisplayedValueForCurrentSelection():
    
MissingNullability: android.widget.PopupMenu#getMenuListView():
    
MissingNullability: android.widget.TimePicker#getAmView():
    
MissingNullability: android.widget.TimePicker#getHourView():
    
MissingNullability: android.widget.TimePicker#getMinuteView():
    
MissingNullability: android.widget.TimePicker#getPmView():
    


MutableBareField: android.content.AutofillOptions#appDisabledExpiration:
    
MutableBareField: android.content.AutofillOptions#augmentedAutofillEnabled:
    
MutableBareField: android.content.AutofillOptions#disabledActivities:
    
MutableBareField: android.content.AutofillOptions#whitelistedActivitiesForAugmentedAutofill:
    
MutableBareField: android.database.sqlite.SQLiteDebug.DbStats#cache:
    
MutableBareField: android.database.sqlite.SQLiteDebug.DbStats#dbName:
    
MutableBareField: android.database.sqlite.SQLiteDebug.DbStats#dbSize:
    
MutableBareField: android.database.sqlite.SQLiteDebug.DbStats#lookaside:
    
MutableBareField: android.database.sqlite.SQLiteDebug.DbStats#pageSize:
    
MutableBareField: android.database.sqlite.SQLiteDebug.PagerStats#dbStats:
    
MutableBareField: android.database.sqlite.SQLiteDebug.PagerStats#largestMemAlloc:
    
MutableBareField: android.database.sqlite.SQLiteDebug.PagerStats#memoryUsed:
    
MutableBareField: android.database.sqlite.SQLiteDebug.PagerStats#pageCacheOverflow:
    
MutableBareField: android.os.StrictMode.ViolationInfo#broadcastIntentAction:
    
MutableBareField: android.os.StrictMode.ViolationInfo#durationMillis:
    
MutableBareField: android.os.StrictMode.ViolationInfo#numAnimationsRunning:
    
MutableBareField: android.os.StrictMode.ViolationInfo#numInstances:
    
MutableBareField: android.os.StrictMode.ViolationInfo#tags:
    
MutableBareField: android.os.StrictMode.ViolationInfo#violationNumThisLoop:
    
MutableBareField: android.os.StrictMode.ViolationInfo#violationUptimeMillis:
    


NoByteOrShort: android.media.audiofx.AudioEffect#byteArrayToShort(byte[]):
    
NoByteOrShort: android.media.audiofx.AudioEffect#setParameter(int, short) parameter #1:
    
NoByteOrShort: android.media.audiofx.AudioEffect#shortToByteArray(short) parameter #0:
    
NoByteOrShort: android.os.HwBlob#getInt16(long):
    
NoByteOrShort: android.os.HwBlob#getInt8(long):
    
NoByteOrShort: android.os.HwBlob#putInt16(long, short) parameter #1:
    
NoByteOrShort: android.os.HwBlob#putInt8(long, byte) parameter #1:
    
NoByteOrShort: android.os.HwParcel#readInt16():
    
NoByteOrShort: android.os.HwParcel#readInt8():
    
NoByteOrShort: android.os.HwParcel#writeInt16(short) parameter #0:
    
NoByteOrShort: android.os.HwParcel#writeInt8(byte) parameter #0:
    
NoByteOrShort: android.util.proto.EncodedBuffer#readRawByte():
    
NoByteOrShort: android.util.proto.EncodedBuffer#writeRawByte(byte) parameter #0:
    


NoClone: android.net.util.SocketUtils#bindSocketToInterface(java.io.FileDescriptor, String) parameter #0:
    
NoClone: android.net.util.SocketUtils#closeSocket(java.io.FileDescriptor) parameter #0:
    
NoClone: android.os.NativeHandle#NativeHandle(java.io.FileDescriptor, boolean) parameter #0:
    
NoClone: android.os.NativeHandle#getFileDescriptor():
    
NoClone: android.os.ParcelFileDescriptor#getFile(java.io.FileDescriptor) parameter #0:
    
NoClone: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #0:
    
NoClone: android.service.contentcapture.ContentCaptureService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]) parameter #0:
    
NoClone: android.util.proto.ProtoOutputStream#ProtoOutputStream(java.io.FileDescriptor) parameter #0:
    


NoSettingsProvider: android.provider.Settings.Global#APP_OPS_CONSTANTS:
    
NoSettingsProvider: android.provider.Settings.Global#AUTOFILL_COMPAT_MODE_ALLOWED_PACKAGES:
    
NoSettingsProvider: android.provider.Settings.Global#AUTOMATIC_POWER_SAVE_MODE:
    
NoSettingsProvider: android.provider.Settings.Global#BATTERY_SAVER_CONSTANTS:
    
NoSettingsProvider: android.provider.Settings.Global#DYNAMIC_POWER_SAVINGS_DISABLE_THRESHOLD:
    
NoSettingsProvider: android.provider.Settings.Global#DYNAMIC_POWER_SAVINGS_ENABLED:
    
NoSettingsProvider: android.provider.Settings.Global#HIDDEN_API_BLACKLIST_EXEMPTIONS:
    
NoSettingsProvider: android.provider.Settings.Global#HIDDEN_API_POLICY:
    
NoSettingsProvider: android.provider.Settings.Global#HIDE_ERROR_DIALOGS:
    
NoSettingsProvider: android.provider.Settings.Global#LOCATION_GLOBAL_KILL_SWITCH:
    
NoSettingsProvider: android.provider.Settings.Global#LOCATION_IGNORE_SETTINGS_PACKAGE_WHITELIST:
    
NoSettingsProvider: android.provider.Settings.Global#LOW_POWER_MODE:
    
NoSettingsProvider: android.provider.Settings.Global#LOW_POWER_MODE_STICKY:
    
NoSettingsProvider: android.provider.Settings.Global#NOTIFICATION_BUBBLES:
    
NoSettingsProvider: android.provider.Settings.Global#OVERLAY_DISPLAY_DEVICES:
    
NoSettingsProvider: android.provider.Settings.Global#TETHER_OFFLOAD_DISABLED:
    
NoSettingsProvider: android.provider.Settings.Global#USE_OPEN_WIFI_PACKAGE:
    
NoSettingsProvider: android.provider.Settings.Secure#ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED:
    
NoSettingsProvider: android.provider.Settings.Secure#ACCESSIBILITY_SHORTCUT_TARGET_SERVICE:
    
NoSettingsProvider: android.provider.Settings.Secure#AUTOFILL_FEATURE_FIELD_CLASSIFICATION:
    
NoSettingsProvider: android.provider.Settings.Secure#AUTOFILL_SERVICE:
    
NoSettingsProvider: android.provider.Settings.Secure#AUTOFILL_USER_DATA_MAX_CATEGORY_COUNT:
    
NoSettingsProvider: android.provider.Settings.Secure#AUTOFILL_USER_DATA_MAX_FIELD_CLASSIFICATION_IDS_SIZE:
    
NoSettingsProvider: android.provider.Settings.Secure#AUTOFILL_USER_DATA_MAX_USER_DATA_SIZE:
    
NoSettingsProvider: android.provider.Settings.Secure#AUTOFILL_USER_DATA_MAX_VALUE_LENGTH:
    
NoSettingsProvider: android.provider.Settings.Secure#AUTOFILL_USER_DATA_MIN_VALUE_LENGTH:
    
NoSettingsProvider: android.provider.Settings.Secure#CONTENT_CAPTURE_ENABLED:
    
NoSettingsProvider: android.provider.Settings.Secure#DISABLED_PRINT_SERVICES:
    
NoSettingsProvider: android.provider.Settings.Secure#DOZE_ALWAYS_ON:
    
NoSettingsProvider: android.provider.Settings.Secure#ENABLED_VR_LISTENERS:
    
NoSettingsProvider: android.provider.Settings.Secure#IMMERSIVE_MODE_CONFIRMATIONS:
    
NoSettingsProvider: android.provider.Settings.Secure#LOCATION_ACCESS_CHECK_DELAY_MILLIS:
    
NoSettingsProvider: android.provider.Settings.Secure#LOCATION_ACCESS_CHECK_INTERVAL_MILLIS:
    
NoSettingsProvider: android.provider.Settings.Secure#LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS:
    
NoSettingsProvider: android.provider.Settings.Secure#LOCK_SCREEN_SHOW_NOTIFICATIONS:
    
NoSettingsProvider: android.provider.Settings.Secure#NFC_PAYMENT_DEFAULT_COMPONENT:
    
NoSettingsProvider: android.provider.Settings.Secure#NOTIFICATION_BADGING:
    
NoSettingsProvider: android.provider.Settings.Secure#POWER_MENU_LOCKED_SHOW_CONTENT:
    
NoSettingsProvider: android.provider.Settings.Secure#SYNC_PARENT_SOUNDS:
    
NoSettingsProvider: android.provider.Settings.Secure#USER_SETUP_COMPLETE:
    
NoSettingsProvider: android.provider.Settings.Secure#VOICE_INTERACTION_SERVICE:
    


NotCloseable: android.app.ActivityView:
    
NotCloseable: android.app.prediction.AppPredictor:
    
NotCloseable: android.net.EthernetManager.TetheredInterfaceRequest:
    Classes that release resources (release()) should implement AutoClosable and CloseGuard: class android.net.EthernetManager.TetheredInterfaceRequest
NotCloseable: android.os.HwParcel:
    
NotCloseable: android.telephony.ims.stub.ImsUtImplBase:
    


OnNameExpected: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.PrintWriter, String[]):
    
OnNameExpected: android.service.contentcapture.ContentCaptureService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]):
    
OnNameExpected: android.service.notification.ConditionProviderService#isBound():
    
OnNameExpected: android.service.notification.NotificationAssistantService#attachBaseContext(android.content.Context):
    
OnNameExpected: android.service.quicksettings.TileService#isQuickSettingsSupported():
    
OnNameExpected: android.service.watchdog.ExplicitHealthCheckService#setCallback(android.os.RemoteCallback):
    If implemented by developer, should follow the on<Something> style; otherwise consider marking final
OnNameExpected: android.telephony.ims.ImsService#createMmTelFeature(int):
    
OnNameExpected: android.telephony.ims.ImsService#createRcsFeature(int):
    
OnNameExpected: android.telephony.ims.ImsService#disableIms(int):
    
OnNameExpected: android.telephony.ims.ImsService#enableIms(int):
    
OnNameExpected: android.telephony.ims.ImsService#getConfig(int):
    
OnNameExpected: android.telephony.ims.ImsService#getRegistration(int):
    
OnNameExpected: android.telephony.ims.ImsService#querySupportedImsFeatures():
    
OnNameExpected: android.telephony.ims.ImsService#readyForFeatureCreation():
    
OnNameExpected: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#dispose(int):
    
OnNameExpected: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#initialize(android.telephony.mbms.MbmsGroupCallSessionCallback, int):
    
OnNameExpected: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#startGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>, android.telephony.mbms.GroupCallCallback):
    
OnNameExpected: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#stopGroupCall(int, long):
    
OnNameExpected: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#updateGroupCall(int, long, java.util.List<java.lang.Integer>, java.util.List<java.lang.Integer>):
    


OptionalBuilderConstructorArgument: android.app.prediction.AppTargetEvent.Builder#Builder(android.app.prediction.AppTarget, int) parameter #0:
    Builder constructor arguments must be mandatory (i.e. not @Nullable): parameter target in android.app.prediction.AppTargetEvent.Builder(android.app.prediction.AppTarget target, int actionType)
OptionalBuilderConstructorArgument: android.net.CaptivePortalData.Builder#Builder(android.net.CaptivePortalData) parameter #0:
    Builder constructor arguments must be mandatory (i.e. not @Nullable): parameter data in android.net.CaptivePortalData.Builder(android.net.CaptivePortalData data)
OptionalBuilderConstructorArgument: android.os.VibrationAttributes.Builder#Builder(android.media.AudioAttributes, android.os.VibrationEffect) parameter #1:
    Builder constructor arguments must be mandatory (i.e. not @Nullable): parameter effect in android.os.VibrationAttributes.Builder(android.media.AudioAttributes audio, android.os.VibrationEffect effect)


PackageLayering: android.util.FeatureFlagUtils:
    


ParcelConstructor: android.os.IncidentManager.IncidentReport#IncidentReport(android.os.Parcel):
    
ParcelConstructor: android.os.IncidentReportArgs#IncidentReportArgs(android.os.Parcel):
    
ParcelConstructor: android.os.StrictMode.ViolationInfo#ViolationInfo(android.os.Parcel):
    
ParcelConstructor: android.os.VibrationEffect.OneShot#OneShot(android.os.Parcel):
    
ParcelConstructor: android.os.VibrationEffect.Prebaked#Prebaked(android.os.Parcel):
    
ParcelConstructor: android.os.VibrationEffect.Waveform#Waveform(android.os.Parcel):
    
ParcelConstructor: android.os.health.HealthStatsParceler#HealthStatsParceler(android.os.Parcel):
    
ParcelConstructor: android.service.notification.SnoozeCriterion#SnoozeCriterion(android.os.Parcel):
    


ParcelCreator: android.app.WindowConfiguration:
    
ParcelCreator: android.net.metrics.ApfProgramEvent:
    
ParcelCreator: android.net.metrics.ApfStats:
    
ParcelCreator: android.net.metrics.DhcpClientEvent:
    
ParcelCreator: android.net.metrics.DhcpErrorEvent:
    
ParcelCreator: android.net.metrics.IpConnectivityLog.Event:
    
ParcelCreator: android.net.metrics.IpManagerEvent:
    
ParcelCreator: android.net.metrics.IpReachabilityEvent:
    
ParcelCreator: android.net.metrics.NetworkEvent:
    
ParcelCreator: android.net.metrics.RaEvent:
    
ParcelCreator: android.net.metrics.ValidationProbeEvent:
    
ParcelCreator: android.os.VibrationEffect.OneShot:
    
ParcelCreator: android.os.VibrationEffect.Prebaked:
    
ParcelCreator: android.os.VibrationEffect.Waveform:
    
ParcelCreator: android.service.autofill.InternalOnClickAction:
    
ParcelCreator: android.service.autofill.InternalSanitizer:
    
ParcelCreator: android.service.autofill.InternalTransformation:
    
ParcelCreator: android.service.autofill.InternalValidator:
    


ParcelNotFinal: android.app.WindowConfiguration:
    
ParcelNotFinal: android.net.metrics.IpConnectivityLog.Event:
    
ParcelNotFinal: android.os.IncidentManager.IncidentReport:
    
ParcelNotFinal: android.os.VibrationEffect.OneShot:
    
ParcelNotFinal: android.os.VibrationEffect.Prebaked:
    
ParcelNotFinal: android.os.VibrationEffect.Waveform:
    
ParcelNotFinal: android.os.health.HealthStatsParceler:
    
ParcelNotFinal: android.service.autofill.InternalOnClickAction:
    
ParcelNotFinal: android.service.autofill.InternalSanitizer:
    
ParcelNotFinal: android.service.autofill.InternalTransformation:
    
ParcelNotFinal: android.service.autofill.InternalValidator:
    


ProtectedMember: android.app.ActivityView#onVisibilityChanged(android.view.View, int):
    
ProtectedMember: android.app.AppDetailsActivity#onCreate(android.os.Bundle):
    
ProtectedMember: android.os.VibrationEffect#scale(int, float, int):
    
ProtectedMember: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]):
    
ProtectedMember: android.service.autofill.augmented.AugmentedAutofillService#dump(java.io.PrintWriter, String[]):
    
ProtectedMember: android.service.contentcapture.ContentCaptureService#dump(java.io.FileDescriptor, java.io.PrintWriter, String[]):
    
ProtectedMember: android.service.notification.NotificationAssistantService#attachBaseContext(android.content.Context):
    
ProtectedMember: android.util.proto.ProtoStream#FIELD_TYPE_NAMES:
    
ProtectedMember: android.view.View#resetResolvedDrawables():
    
ProtectedMember: android.view.ViewGroup#resetResolvedDrawables():
    


RawAidl: android.telephony.mbms.vendor.MbmsDownloadServiceBase:
    
RawAidl: android.telephony.mbms.vendor.MbmsStreamingServiceBase:
    


RethrowRemoteException: android.app.ActivityManager#resumeAppSwitches():
    
RethrowRemoteException: android.os.HwBinder#getService(String, String):
    
RethrowRemoteException: android.os.HwBinder#getService(String, String, boolean):
    
RethrowRemoteException: android.os.HwBinder#onTransact(int, android.os.HwParcel, android.os.HwParcel, int):
    
RethrowRemoteException: android.os.HwBinder#registerService(String):
    
RethrowRemoteException: android.os.HwBinder#transact(int, android.os.HwParcel, android.os.HwParcel, int):
    
RethrowRemoteException: android.os.IHwBinder#transact(int, android.os.HwParcel, android.os.HwParcel, int):
    
RethrowRemoteException: android.telephony.ims.ImsService#onUpdateSupportedImsFeatures(android.telephony.ims.stub.ImsFeatureConfiguration):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#addStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#cancelDownload(android.telephony.mbms.DownloadRequest):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#dispose(int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#download(android.telephony.mbms.DownloadRequest):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#initialize(int, android.telephony.mbms.MbmsDownloadSessionCallback):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#listPendingDownloads(int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#onTransact(int, android.os.Parcel, android.os.Parcel, int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#removeProgressListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadProgressListener):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#removeStatusListener(android.telephony.mbms.DownloadRequest, android.telephony.mbms.DownloadStatusListener):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#requestDownloadState(android.telephony.mbms.DownloadRequest, android.telephony.mbms.FileInfo):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#requestUpdateFileServices(int, java.util.List<java.lang.String>):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#resetDownloadKnowledge(android.telephony.mbms.DownloadRequest):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsDownloadServiceBase#setTempFileRootDirectory(int, String):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#dispose(int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsGroupCallServiceBase#initialize(android.telephony.mbms.MbmsGroupCallSessionCallback, int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#dispose(int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#getPlaybackUri(int, String):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#initialize(android.telephony.mbms.MbmsStreamingSessionCallback, int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#onTransact(int, android.os.Parcel, android.os.Parcel, int):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#requestUpdateStreamingServices(int, java.util.List<java.lang.String>):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#startStreaming(int, String, android.telephony.mbms.StreamingServiceCallback):
    
RethrowRemoteException: android.telephony.mbms.vendor.MbmsStreamingServiceBase#stopStreaming(int, String):
    


SamShouldBeLast: android.app.ActivityManager#addOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener, int):
    
SamShouldBeLast: android.app.role.RoleManager#addOnRoleHoldersChangedListenerAsUser(java.util.concurrent.Executor, android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle):
    
SamShouldBeLast: android.app.role.RoleManager#removeOnRoleHoldersChangedListenerAsUser(android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle):
    
SamShouldBeLast: android.database.sqlite.SQLiteDebug#dump(android.util.Printer, String[]):
    
SamShouldBeLast: android.database.sqlite.SQLiteDirectCursorDriver#query(android.database.sqlite.SQLiteDatabase.CursorFactory, String[]):
    
SamShouldBeLast: android.location.LocationManager#requestLocationUpdates(android.location.LocationRequest, android.location.LocationListener, android.os.Looper):
    
SamShouldBeLast: android.location.LocationManager#requestLocationUpdates(android.location.LocationRequest, java.util.concurrent.Executor, android.location.LocationListener):
    
SamShouldBeLast: android.os.BugreportManager#startBugreport(android.os.ParcelFileDescriptor, android.os.ParcelFileDescriptor, android.os.BugreportParams, java.util.concurrent.Executor, android.os.BugreportManager.BugreportCallback):
    
SamShouldBeLast: android.os.IHwBinder#linkToDeath(android.os.IHwBinder.DeathRecipient, long):
    
SamShouldBeLast: android.os.StrictMode.ViolationInfo#dump(android.util.Printer, String):
    
SamShouldBeLast: android.permission.PermissionControllerManager#countPermissionApps(java.util.List<java.lang.String>, int, android.permission.PermissionControllerManager.OnCountPermissionAppsResultCallback, android.os.Handler):
    SAM-compatible parameters (such as parameter 3, "callback", in android.permission.PermissionControllerManager.countPermissionApps) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions
SamShouldBeLast: android.permission.PermissionControllerManager#getAppPermissions(String, android.permission.PermissionControllerManager.OnGetAppPermissionResultCallback, android.os.Handler):
    
SamShouldBeLast: android.permission.PermissionControllerManager#revokeRuntimePermissions(java.util.Map<java.lang.String,java.util.List<java.lang.String>>, boolean, int, java.util.concurrent.Executor, android.permission.PermissionControllerManager.OnRevokeRuntimePermissionsCallback):
    
SamShouldBeLast: android.service.autofill.CharSequenceTransformation#apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int):
    
SamShouldBeLast: android.service.autofill.DateTransformation#apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int):
    
SamShouldBeLast: android.service.autofill.ImageTransformation#apply(android.service.autofill.ValueFinder, android.widget.RemoteViews, int):
    
SamShouldBeLast: android.service.autofill.InternalTransformation#batchApply(android.service.autofill.ValueFinder, android.widget.RemoteViews, java.util.ArrayList<android.util.Pair<java.lang.Integer,android.service.autofill.InternalTransformation>>):
    
SamShouldBeLast: android.telephony.ims.ImsMmTelManager#getFeatureState(java.util.function.Consumer<java.lang.Integer>, java.util.concurrent.Executor):
    
SamShouldBeLast: android.view.Choreographer#postCallback(int, Runnable, Object):
    
SamShouldBeLast: android.view.Choreographer#postCallbackDelayed(int, Runnable, Object, long):
    
SamShouldBeLast: android.view.Choreographer#removeCallbacks(int, Runnable, Object):
    
SamShouldBeLast: android.view.ViewDebug#startRenderingCommandsCapture(android.view.View, java.util.concurrent.Executor, java.util.function.Function<android.graphics.Picture,java.lang.Boolean>):
    
SamShouldBeLast: android.view.accessibility.AccessibilityManager#addAccessibilityServicesStateChangeListener(android.view.accessibility.AccessibilityManager.AccessibilityServicesStateChangeListener, android.os.Handler):
    


ServiceName: android.Manifest.permission#BIND_CELL_BROADCAST_SERVICE:
    
ServiceName: android.app.AppOpsManager#OPSTR_BIND_ACCESSIBILITY_SERVICE:
    
ServiceName: android.provider.Settings.Secure#ACCESSIBILITY_SHORTCUT_TARGET_SERVICE:
    
ServiceName: android.provider.Settings.Secure#AUTOFILL_SERVICE:
    
ServiceName: android.provider.Settings.Secure#VOICE_INTERACTION_SERVICE:
    


SetterReturnsThis: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyFocusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyFocusListener):
    
SetterReturnsThis: android.media.audiopolicy.AudioPolicy.Builder#setAudioPolicyStatusListener(android.media.audiopolicy.AudioPolicy.AudioPolicyStatusListener):
    


StaticFinalBuilder: android.content.integrity.RuleSet.Builder:
    Builder must be final: android.content.integrity.RuleSet.Builder
StaticFinalBuilder: android.hardware.display.BrightnessConfiguration.Builder:
    Builder must be final: android.hardware.display.BrightnessConfiguration.Builder
StaticFinalBuilder: android.media.audiopolicy.AudioMix.Builder:
    Builder must be final: android.media.audiopolicy.AudioMix.Builder
StaticFinalBuilder: android.media.audiopolicy.AudioMixingRule.Builder:
    Builder must be final: android.media.audiopolicy.AudioMixingRule.Builder
StaticFinalBuilder: android.media.audiopolicy.AudioPolicy.Builder:
    Builder must be final: android.media.audiopolicy.AudioPolicy.Builder
StaticFinalBuilder: android.net.CaptivePortalData.Builder:
    Builder must be final: android.net.CaptivePortalData.Builder
StaticFinalBuilder: android.net.TetheringManager.TetheringRequest.Builder:
    Builder must be final: android.net.TetheringManager.TetheringRequest.Builder
StaticFinalBuilder: android.telephony.ims.stub.ImsFeatureConfiguration.Builder:
    Builder must be final: android.telephony.ims.stub.ImsFeatureConfiguration.Builder


StaticUtils: android.os.health.HealthKeys:
    
StaticUtils: android.service.autofill.InternalTransformation:
    
StaticUtils: android.telephony.mbms.vendor.VendorUtils:
    
StaticUtils: android.util.FeatureFlagUtils:
    
StaticUtils: android.util.proto.ProtoStream:
    


StreamFiles: android.os.Environment#buildPath(java.io.File, java.lang.String...):
    
StreamFiles: android.os.FileUtils#contains(java.io.File, java.io.File):
    
StreamFiles: android.provider.MediaStore#scanFile(android.content.Context, java.io.File):
    
StreamFiles: android.provider.MediaStore#scanFileFromShell(android.content.Context, java.io.File):
    
StreamFiles: android.provider.MediaStore#scanVolume(android.content.Context, java.io.File):
    


UseIcu: android.hardware.soundtrigger.KeyphraseEnrollmentInfo#getKeyphraseMetadata(String, java.util.Locale) parameter #1:
    Type `java.util.Locale` should be replaced with richer ICU type `android.icu.util.ULocale`
UseIcu: android.hardware.soundtrigger.KeyphraseEnrollmentInfo#getManageKeyphraseIntent(int, String, java.util.Locale) parameter #2:
    Type `java.util.Locale` should be replaced with richer ICU type `android.icu.util.ULocale`
UseIcu: android.hardware.soundtrigger.KeyphraseMetadata#supportsLocale(java.util.Locale) parameter #0:
    Type `java.util.Locale` should be replaced with richer ICU type `android.icu.util.ULocale`
UseIcu: android.hardware.soundtrigger.SoundTrigger.Keyphrase#Keyphrase(int, int, java.util.Locale, String, int[]) parameter #2:
    Type `java.util.Locale` should be replaced with richer ICU type `android.icu.util.ULocale`
UseIcu: android.hardware.soundtrigger.SoundTrigger.Keyphrase#getLocale():
    Type `java.util.Locale` should be replaced with richer ICU type `android.icu.util.ULocale`


UseParcelFileDescriptor: android.util.proto.ProtoOutputStream#ProtoOutputStream(java.io.FileDescriptor) parameter #0:
    


UserHandle: android.app.ActivityManager#switchUser(android.os.UserHandle):
    
UserHandle: android.app.admin.DevicePolicyManager#getOwnerInstalledCaCerts(android.os.UserHandle):
    
UserHandle: android.app.role.RoleManager#addOnRoleHoldersChangedListenerAsUser(java.util.concurrent.Executor, android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle):
    
UserHandle: android.app.role.RoleManager#addRoleHolderAsUser(String, String, int, android.os.UserHandle, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Boolean>):
    
UserHandle: android.app.role.RoleManager#clearRoleHoldersAsUser(String, int, android.os.UserHandle, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Boolean>):
    
UserHandle: android.app.role.RoleManager#getRoleHoldersAsUser(String, android.os.UserHandle):
    
UserHandle: android.app.role.RoleManager#removeOnRoleHoldersChangedListenerAsUser(android.app.role.OnRoleHoldersChangedListener, android.os.UserHandle):
    
UserHandle: android.app.role.RoleManager#removeRoleHolderAsUser(String, String, int, android.os.UserHandle, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Boolean>):
    
UserHandle: android.app.usage.StorageStatsManager#queryCratesForPackage(java.util.UUID, String, android.os.UserHandle):
    
UserHandle: android.app.usage.StorageStatsManager#queryCratesForUser(java.util.UUID, android.os.UserHandle):
    
UserHandle: android.companion.CompanionDeviceManager#isDeviceAssociated(String, android.net.MacAddress, android.os.UserHandle):
    
UserHandle: android.companion.CompanionDeviceManager#isDeviceAssociatedForWifiConnection(String, android.net.MacAddress, android.os.UserHandle):
    When a method overload is needed to target a specific UserHandle, callers should be directed to use Context.createPackageContextAsUser() and re-obtain the relevant Manager, and no new API should be added
UserHandle: android.content.pm.PackageManager#getInstallReason(String, android.os.UserHandle):
    
UserHandle: android.content.pm.PackageManager#getPermissionFlags(String, String, android.os.UserHandle):
    
UserHandle: android.content.pm.PackageManager#grantRuntimePermission(String, String, android.os.UserHandle):
    
UserHandle: android.content.pm.PackageManager#revokeRuntimePermission(String, String, android.os.UserHandle):
    
UserHandle: android.content.pm.PackageManager#revokeRuntimePermission(String, String, android.os.UserHandle, String):
    When a method overload is needed to target a specific UserHandle, callers should be directed to use Context.createPackageContextAsUser() and re-obtain the relevant Manager, and no new API should be added
UserHandle: android.content.pm.PackageManager#updatePermissionFlags(String, String, int, int, android.os.UserHandle):
    
UserHandle: android.location.LocationManager#setLocationEnabledForUser(boolean, android.os.UserHandle):
    
UserHandle: android.permission.PermissionControllerManager#applyStagedRuntimePermissionBackup(String, android.os.UserHandle, java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Boolean>):
    
UserHandle: android.permission.PermissionControllerManager#getRuntimePermissionBackup(android.os.UserHandle, java.util.concurrent.Executor, java.util.function.Consumer<byte[]>):
    
UserHandle: android.permission.PermissionControllerManager#stageAndApplyRuntimePermissionsBackup(byte[], android.os.UserHandle):
    
UserHandle: android.telecom.TelecomManager#getDefaultDialerPackage(android.os.UserHandle):
    When a method overload is needed to target a specific UserHandle, callers should be directed to use Context.createPackageContextAsUser() and re-obtain the relevant Manager, and no new API should be added


UserHandleName: android.app.ActivityView#startActivity(android.content.Intent, android.os.UserHandle):
    
UserHandleName: android.content.AutofillOptions:
    
UserHandleName: android.content.ContentCaptureOptions:
    
UserHandleName: android.os.IncidentReportArgs:
    
UserHandleName: android.provider.MediaStore#deleteContributedMedia(android.content.Context, String, android.os.UserHandle):
    
UserHandleName: android.provider.MediaStore#getContributedMediaSize(android.content.Context, String, android.os.UserHandle):
    


VisiblySynchronized: PsiClassObjectAccessExpression:
    
VisiblySynchronized: PsiThisExpression:
    
VisiblySynchronized: android.app.ActivityManager#addOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener, int):
    
VisiblySynchronized: android.app.ActivityManager#removeOnUidImportanceListener(android.app.ActivityManager.OnUidImportanceListener):
    
VisiblySynchronized: android.content.ContentProviderClient#setDetectNotResponding(long):
    
VisiblySynchronized: android.content.res.AssetManager#getApkPaths():
    
VisiblySynchronized: android.content.res.AssetManager#getLastResourceResolution():
    
VisiblySynchronized: android.content.res.AssetManager#getOverlayablesToString(String):
    
VisiblySynchronized: android.content.res.AssetManager#setResourceResolutionLoggingEnabled(boolean):
    
VisiblySynchronized: android.os.MessageQueue#removeSyncBarrier(int):
    
