You uploaded an APK or Android App Bundle which has an activity, activity alias, service or broadcast receiver with intent filter, but without 'android:exported' property set. This file can't be installed on Android 12 or higher

This is caused by recent changes in Google Play Console, which will no longer accept activities, activity aliases, services, or broadcast receivers that don’t have the android:exported property set. Unfortunately, this is hardcoded in the UnrealBuildTool, and editing the AndroidManifest.xml file directly won’t help, because UnrealBuildTool regenerates this file on each build.

We simply need to wait until Epic fixes this in the engine, hopefully next release. Until then, you have 3 options:

Solution 1 (easiest): Downgrade to API 30

As mentioned above, switch your target API to 30. You can download API 30 using the SDK manager. With this solution you will lose the advantages of API 32 obviously.

Solution 2: Build it with Android Studio

Follow @Ahmed_Aniss147 's solution to build the project with Android Studio. You can edit the AndroidManifext.xml file to add android:exported="true" to the com.epicgames.ue4.SplashActivity activity. Then you will need to open the project in Android Studio and set up Android Studio to build the project and sign/zip-align the APK/AAB for you. Since Unreal Engine rewrites the AndroidManifext.xml file on each build, you would probably need to repeat this process.

This approach will let you keep the advantages of API 32.

Solution 3: Use the source version of Unreal Engine and edit the source code

This solution requires the most setup. Getting the Unreal Engine running from the source version comes with a lot of gigabytes to download and things to install. But once you have it running, you can alter the Unreal Engine’s code in any way and it will work for you once you do it. Without the need to edit the manifest file over and over, and keeping the API 32 features.

Once you have the source version set up, you just need to open the Engine/Source/Programs/UnrealBuildTool/Platform/Android/UEDeployAndroid.cs file, and add the line:

Text.AppendLine("\t\t          android:exported=\"true\"");

…after the line 2389

Then rebuild the Engine, build your project for shipping and you should be able to upload to the Google Play Console successfully.

9 Likes