Using UE5 successful Android build, cannot get it signed in Android Studio

I built an Unreal Engine 5 AR App and the APK loads on my phone and works just fine. I need to sign the APK/ABB.

But when I open Android Studio 4.2.2 and go to Build, I only get options “Analyze APK” and “Deploy Module to App Engine.” Nothing for signing the APK or converting, etc.

I’m new to Android Studio and totally lost without any idea where to begin. I’ve read a number of postings around the internet about this problem but I still can’t get the “Generate Signed…”. And clueless why I can build a working UE5 APK but can’t sign it. Color me crazy!

Thank you for your kindness and help.


My Android Manifest XML is below if that helps.

<?xml version="1.0" encoding="utf-8"?>

   <package

android:name=“com.google.ar.core” />

   <activity

android:theme="@anonymous_user_e9b008e5/0x7f0b0010"
android:label="@anonymous_user_e9b008e5/0x7f0a0011"
android:name=“com.epicgames.unreal.SplashActivity”
android:debuggable=“true”
android:exported=“true”
android:launchMode=“2”
android:screenOrientation=“4”
android:resizeableActivity=“false”>

       <intent-filter>

           <action

android:name=“android.intent.action.MAIN” />

           <category

android:name=“android.intent.category.LAUNCHER” />

   <activity

android:theme="@anonymous_user_e9b008e5/0x7f0b0010"
android:label="@anonymous_user_e9b008e5/0x7f0a0011"
android:name=“com.epicgames.unreal.GameActivity”
android:debuggable=“true”
android:launchMode=“2”
android:screenOrientation=“4”
android:configChanges=“0x40003fff”
android:resizeableActivity=“false”>

       <meta-data

android:name=“android.app.lib_name”
android:value=“Unreal” />

   <activity

android:theme="@anonymous_user_e9b008e5/0x7f0b0010"
android:name=“com.AR_AH.AR_AH.DownloaderActivity”
android:screenOrientation=“4”
android:configChanges=“0x16b3” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.EngineVersion”
android:value=“5.0.1” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.EngineBranch”
android:value="++UE5+Release-5.0" />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.ProjectVersion”
android:value=“1.0.0.0” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.DepthBufferPreference”
android:value=“0” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.bPackageDataInsideApk”
android:value=“false” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.bVerifyOBBOnStartUp”
android:value=“false” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.bShouldHideUI”
android:value=“true” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.ProjectName”
android:value=“AR_AH” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.AppType”
android:value="@string/0x1d" />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.bHasOBBFiles”
android:value=“false” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.BuildConfiguration”
android:value=“Development” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.CookedFlavors”
android:value=“ASTC” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.bValidateTextureFormats”
android:value=“true” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.bUseExternalFilesDir”
android:value=“true” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.bPublicLogFiles”
android:value=“false” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.bUseDisplayCutout”
android:value=“false” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.bAllowIMU”
android:value=“false” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.bSupportsVulkan”
android:value=“false” />

   <meta-data

android:name=“com.epicgames.unreal.GameActivity.StartupPermissions”
android:value=“android.permission.WRITE_EXTERNAL_STORAGE” />

   <meta-data

android:name=“com.google.android.gms.games.APP_ID”
android:value="@anonymous_user_e9b008e5/0x7f0a0010" />

   <meta-data

android:name=“com.google.android.gms.version”
android:value="@anonymous_user_e9b008e5/0x7f070001" />

   <activity

android:name=“com.google.android.gms.ads.AdActivity”
android:configChanges=“0xfb0” />

   <service

android:name=“com.AR_AH.AR_AH.OBBDownloaderService” />

   <receiver

android:name=“com.AR_AH.AR_AH.AlarmReceiver” />

   <receiver

android:name=“com.epicgames.unreal.LocalNotificationReceiver” />

   <receiver

android:name=“com.epicgames.unreal.MulticastBroadcastReceiver”
android:exported=“true”>

       <intent-filter>

           <action

android:name=“com.android.vending.INSTALL_REFERRER” />

   <meta-data

android:name=“android.max_aspect”
android:value=“1074161280.000000” />

   <meta-data

android:name=“com.google.ar.core”
android:value=“required” />

   <receiver

android:name=“com.epicgames.unreal.RemoteFileManagerReceiver”
android:exported=“true”>

       <intent-filter>

           <action

android:name=“com.epicgames.unreal.RemoteFileManager.intent.COMMAND” />

   <meta-data

android:name=“com.epicgames.unreal.RemoteFileManager.bAllowNetworkConnection”
android:value=“true” />

   <activity

android:theme="@anonymous_user_e9b008e5/0x01030010"
android:name=“com.google.android.gms.auth.api.signin.internal.SignInHubActivity”
android:exported=“false”
android:excludeFromRecents=“true” />

   <service

android:name=“com.google.android.gms.auth.api.signin.RevocationBoundService”
android:permission=“com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION”
android:exported=“true” />

   <meta-data

android:name=“com.google.ar.core.min_apk_version”
android:value=“202940000” />

   <activity

android:theme="@anonymous_user_e9b008e5/0x0103023a"
android:name=“com.google.ar.core.InstallActivity”
android:exported=“false”
android:excludeFromRecents=“true”
android:launchMode=“1”
android:configChanges=“0x4a0” />

   <meta-data

android:name=“com.google.android.play.billingclient.version”
android:value=“3.0.0” />

   <activity

android:theme="@anonymous_user_e9b008e5/0x01030010"
android:name=“com.android.billingclient.api.ProxyBillingActivity”
android:configChanges=“0x5b0” />

   <activity

android:theme="@anonymous_user_e9b008e5/0x01030010"
android:name=“com.google.android.gms.common.api.GoogleApiActivity”
android:exported=“false” />

   <provider

android:name=“androidx.lifecycle.ProcessLifecycleOwnerInitializer”
android:exported=“false”
android:multiprocess=“true”
android:authorities=“com.AR_AH.AR_AH.lifecycle-process” />

do you need it?


I just don’t fully understand what you’re trying to do

Good morning!

Thank you for the kindness of your time and efforts. I really appreciate it. Yes! I need to generate that keying information. I’ve edited the original post by adding some images which hopefully illustrate the issue.

Wished for end result: I upload my UE5 AR signed/keyed Android aab files to Google Play. Yay! :slight_smile:

Now: I can build a working unsigned/not-keyed UE5 apk file and run it on my phone. I can also build an usigned/keyed aab. (PS. This is the UE5 AR project. I replaced the player mesh with one of my own. No other changes.)

Next Step(?): Many YouTube videos tell me I have to use Android Studio’s “Generate Signed Bundle/APK” option under the Build Menu. My Build Menu does not have those options. Note: A reddit thread says I may have my UE5 build files in the wrong location. I’m not sure. They are currently under my UE5 project directory. This is my first time using Android Studio.

If there are other options besides using Android Studio to generate the keying information, I’m open to anything!

Thank you again for your help! Like a nice big plate of tiramisu for a starving man :wink:

1 Like

Good morning) you can come to my shop window here and download the game from the playmarket) it is signed … and here are the instructions on how to do it Cmd.exe failed with args: Rungradle.bat. Packaging for android - #2 by dev.ue.games

or maybe my google translator broke :grin: but I do not understand why you have an android studio in this case) you can create keys if you use android studio?

Thank you for all your wonderful help! Your post worked great. And I now have a keystore for UE5.

For future generations, here a complete review and some pointers for the solution:

How I ended up fixing not being able to use Android Studio to create a keystore: I did not use Android Studio. Instead I used the command line to the Keytool program. All the same inputs are given in the command line that are input in Android Studio. Two resources I found that were the best is a YouTube video: “Unreal Engine 4 How To Packing Android Game Make .aab File for Unreal Engine Android Export UE4” which works for UE5 also. And an Unreal Engine Forum Post: “Cmd.exe failed with args: Rungradle.bat. Packaging for android” which also covers using the Keytool program. (The solution mentioned here.) Good luck to everyone!

That did it! Yay! You’re a genius. Thank you so much. I really appreciate it. You saved me :slight_smile: I posted more info in another reply below.

1 Like