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

If someone is interested, I will write a solution for version 4.25.

1 Like

Solved using

UE 4.27 Target SDK 31

4 Likes

Hi, it didn’t work for me. Any other ideas?

This worked for me! Thanky you!

Hi is here somebody who can help me targeting skd and fix manifest for android 12, happy to pay, i am IT student in software development but this is real strugle as unreal has outdated guidance because of this can not ship my first ever made game.

Pm if you willing to give me remore control assistance assitance .

Thank you

Hi, I found a solution

In Platforms → Android : Show launch image need to be disabled

Then, add extra tag for UE4.GameActivity

1 Like

you need to edit manifest file with android studio & export from android studio
that work
see this video

1 Like

I guess that deactive splash screen
it’s not good
for ue 4.27.2 i used android studio to solve that

Hi! I’ve made a plugin, that modifies manifest automatically and fixes this issue.

Inside MyGame.Build.cs

public MyGame(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
	
		PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });

		PrivateDependencyModuleNames.AddRange(new string[] {  });

        // Uncomment if you are using Slate UI
        // PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });
        PrivateDependencyModuleNames.AddRange(new string[] { "OnlineSubsystem", "OnlineSubsystemUtils" });

        DynamicallyLoadedModuleNames.Add("OnlineSubsystemNull");

        if (Target.Platform == UnrealTargetPlatform.IOS)
        {
            PrivateDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine"});
            DynamicallyLoadedModuleNames.Add("IOSAdvertising");
        }
        else if (Target.Platform == UnrealTargetPlatform.Android)
        {
            PrivateDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine"});
            DynamicallyLoadedModuleNames.Add("AndroidAdvertising");
            // Add UPL to add configrules.txt to our APK
            string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath);
            AdditionalPropertiesForReceipt.Add("AndroidPlugin", System.IO.Path.Combine(PluginPath, "AddAndroidExportedToSplash_UPL.xml"));

        }
    }

Inside MyGame/Source/MyGame folder, you need this file:AddAndroidExportedToSplash_UPL.xml

<?xml version="1.0" encoding="utf-8"?>
<root xmlns:android="http://schemas.android.com/apk/res/android">
	<!-- init section is always evaluated once per architecture -->
	<init>
	</init>

	<!-- optional updates applied to AndroidManifest.xml -->
	<androidManifestUpdates>
		<!-- update the SplashActivity activity -->
		<loopElements tag="activity">
			<setStringFromAttribute result="activityName" tag="$" name="android:name"/>
			<setBoolIsEqual result="bSplashActivity" arg1="$S(activityName)" arg2="com.epicgames.ue4.SplashActivity"/>
			<if condition="bSplashActivity">
				<true>
					<addAttribute tag="$" name="android:exported" value="true"/>
				</true>
			</if>
		</loopElements>
	</androidManifestUpdates>
</root>
3 Likes

Thanks! Your method helped solve this problem!

1 Like

You can solve it by editing the engine source code:

  • Go to: Engine\Source\Programs\UnrealBuildTool\Platform\Android
  • Open the file UEDeployAndroid.cs
  • Search for the line Text.AppendLine("\t\t<activity android:name=\"com.epicgames.ue4.SplashActivity\""); (line 2601 in an untouched file)
  • Add Text.AppendLine("\t\t android:exported=\"true\"");

The file should looks like this:

				// normal application settings
				Text.AppendLine("\t\t<activity android:name=\"com.epicgames.ue4.SplashActivity\"");
				Text.AppendLine("\t\t          android:exported=\"true\"");		// Android 12 support
				Text.AppendLine("\t\t          android:label=\"@string/app_name\"");
				Text.AppendLine("\t\t          android:theme=\"@style/UE4SplashTheme\"");
				Text.AppendLine("\t\t          android:launchMode=\"singleTask\"");

Now go to your project settings and make sure your game is targeting API level 31.

Hi. UE 4.27 You needs to add second permission line 2601 ue4.GameActivity
else
{
Text.AppendLine(“\t\t<activity android:name="com.epicgames.ue4.GameActivity"”);
Text.AppendLine(“\t\t android:exported="true"”); // Android 12 support
Text.AppendLine(“\t\t android:label="@string/app_name"”);

ok now i successfully packaged the game and uploaded it on google
but while i’m trying to package the new update and upload it it still have the same store version even after i change the android:versionCode=“16” android:versionName=“16”
google play say that it still 14 and when i tried to change it in the manifest , android studio give me this error

Failed to parse XML in C:\Users\plaza\Documents\Unreal Projects\claw_mobile_project\Intermediate\Android\gradle\app\src\main\AndroidManifest.xml
ParseError at [row,col]:[13,3]
Message: expected start or end tag
Affected Modules: app-app

can any one heelp me please ?

There’s at least 1 more/less character (quote, dot, semicolon etc.) in this xml file.

Cool! Finally it can be fixed, THANK YOU!

Guys, it’s simple

  1. Add an Empty C++ Class so that you can use plugins not from the Market
  2. Add a couple of lines to C:\Your_Unreal_Projects\ProjectName\Source\ProjectName.Target.cs
// Fill out your copyright notice in the Description page of Project Settings.

using UnrealBuildTool;

public class brainfun : ModuleRules
{
	public brainfun(ReadOnlyTargetRules Target) : base(Target)
	{
		PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
	
		PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });

		PrivateDependencyModuleNames.AddRange(new string[] {  });

		// Add !!!!!!!!!!
           	string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath);
            	AdditionalPropertiesForReceipt.Add("AndroidPlugin", System.IO.Path.Combine(PluginPath, "AddAndroidExportedToSplash_UPL.xml"));

		// Uncomment if you are using Slate UI
		// PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });
		
		// Uncomment if you are using online features
		// PrivateDependencyModuleNames.Add("OnlineSubsystem");

		// To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true
	}
}
  1. Create a file AddAndroidExportedToSplash_UPL.xml (in the same folder where is located ProjectName.Target.cs ) the content is written above
2 Likes

i will try it now and leave you a comment
edited :
it works guys, it works :star_struck: :partying_face:
thanks @KonPetTsu and @WimbleSoft

1 Like

UE_4.27.zip (1.4 MB)
Patch for UE4.27.2. Copy to UE_4.27 folder.

6 Likes

God bless you, man I was relentlessly looking for fixies for the past 2 months nothing worked for me. This patch fixed my issue. Thanks a lot. :smiley:

1 Like

thank you so much!!! it works!!!