Read the exception message precisely
Use the crash guide to locate the failing API and preserve the redacted message. Messages often identify the required permission, UID or component.
Do not add every permission mentioned online. Some permissions are signature-level or otherwise unavailable to an ordinary third-party app.
Match the API's access model
| Access model | Required investigation |
|---|---|
| Normal permission | Correct manifest declaration |
| Dangerous permission | Declaration plus runtime grant where required |
| Special access | Dedicated user/settings flow and eligibility |
| URI access | Correct grant and lifetime |
| Signature/privileged API | Whether your app is allowed to use it at all |
The runtime permission guide and permission reference explain the distinction.
Test revocation and lifecycle changes
A permission granted yesterday may be revoked later. Check immediately before the protected operation where the API requires it and handle denial without crashing.
A cached boolean is not a durable guarantee of access. Similarly, a URI grant may not survive the way the app expects unless persistence is supported and correctly requested.
Check version-specific behavior
Record device API level and app target SDK. The same source code can encounter a stricter contract on newer Android versions or after a target SDK update.
Avoid catching the exception and continuing as though the protected operation succeeded. Return an explicit recoverable state.
Validate the narrow correction
APKLint's Manifest and Permissions checkers can help inspect declarations, but they cannot grant runtime access or prove the current caller's privileges. The fix needs a successful authorized operation and a safe denied/revoked path on the relevant platform versions.
Sources and further reading
- Android Developers: Diagnose and fix crashes
- Android Developers: Request runtime permissions
- Android Developers: Manifest.permission reference
Reference review: 22 September 2026. Examples illustrate the workflow; check your installed versions, release artifact and account-specific Console requirements before applying them. This guide is not a claim that APKLint executed your project or verified your private account.



