Appraysal
Back to Rules
WARNINGLikelyGuideline SecurityGoogle PlayAndroidSafety

Missing android:exported Declaration

Components with intent-filters must explicitly declare android:exported (required for Android 12+ / API 31+). Activities, services, receivers, providers, and activity-aliases that declare intent-filters without an explicit exported attribute will cause install failures on Android 12 and higher.

Quick Fix

Add android:exported="true" if the component needs to be accessible from other apps, or android:exported="false" if it should only be used internally. This is required for apps targeting Android 12 (API 31) and higher.

What Gets Detected

Detection Type:CODE PATTERN
Patterns detected:
/<activity\b(?![^>]*\bandroid:exported\s*=)[^>]*>[\s\S]*?<intent-filter/i/<activity-alias\b(?![^>]*\bandroid:exported\s*=)[^>]*>[\s\S]*?<intent-filter/i/<service\b(?![^>]*\bandroid:exported\s*=)[^>]*>[\s\S]*?<intent-filter/i/<receiver\b(?![^>]*\bandroid:exported\s*=)[^>]*>[\s\S]*?<intent-filter/i/<provider\b(?![^>]*\bandroid:exported\s*=)[^>]*>[\s\S]*?<intent-filter/i

Check Your App

Scan your project to see if this rule affects your app

Run Free Scan