Manifest & Permissions

Fix a Missing android:exported Declaration Safely

A missing android:exported declaration should be fixed by deciding whether the component is an intended external entry point. Setting every affected activity, service and receiver to true can make the build pass while creating an unnecessary attack surface.

By Updated 2 min read

Find the component and its source

Inspect the build error and merged-manifest report. Determine whether the component comes from your app or a dependency. Modern target requirements make explicit export decisions especially important for components with intent filters.

The exported-component guidance and merger documentation explain the relevant declarations and source relationships.

Choose the value by contract

Component Typical decision to investigate
Launcher activity External launch is intentional
Private internal activity Keep unexported unless a documented integration requires otherwise
Public deep-link handler Export intentionally, validate input and protect sensitive operations
Internal service or receiver Avoid external access unless required
Library component Consult the current library version and documented integration

These are review directions, not rules that replace understanding the component's function.

Patch the right source

For your own component, add the explicit attribute in the appropriate manifest. For a library component, first check whether an updated compatible dependency already fixes the declaration. A local merge override can be appropriate, but should be documented and tested against the library's expected behavior.

Do not remove an intent filter just to avoid the requirement if the app relies on that route for launch or integration.

Test external and internal entry

Verify that legitimate launch and link flows still work. For sensitive components, test direct entry with missing or malformed data using an authorized test setup. Authentication on a previous screen does not protect a component that can be reached independently.

Inspect the release artifact

APKLint's Exported Activity Checker can help review explicit declarations and exposed components. It cannot determine every business authorization rule. Confirm the final merged manifest and close the issue with a test showing both intended access and rejection of unintended use.

Sources and further reading

  1. Android Developers: android:exported
  2. Android Developers: Merge multiple manifest files
  3. Android Developers: App manifest overview

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.

APKLint

Android inspection tools and practical release guides. About APKLint · Report a correction