Packaging Android Projects

Taking a look at packaging your final Android project.

Windows
MacOS
Linux
On this page

Steps

In the following How To we will take a look how to package your entire Unreal Engine 4 (UE4) Android project for deployment to an Android device.

We are currently packaging in Development because we are testing this game, but when your game is complete, you can package it in Shipping by hovering over the Build Configurations option in the Package Project menu.

  1. In the File menu, go to Package Project > Android and select the Texture format you want to package. For this example, we will choose Android ETC1 as it is supported by all devices.

    Different devices support different Texture formats depending on the hardware they run on. See, Android Development Reference for a detailed breakdown of the various formats.

    Format

    Description

    ETC1

    Supported by all Android based devices but cannot compress alpha textures (they are stored uncompressed). Recommend using an RGB and a separate alpha texture if need alpha to get better compression.

    ETC2

    Supported by all OpenGL 3.x class devices and supports alpha compression.

    ATC

    Supported by Qualcomm Adreno GPUs and supports alpha compression.

    DXT

    Supported by Nvidia Tegra GPUs and supports alpha compression.

    PVRTC

    Supported by PowerVR GPUs and supports alpha compression.

    ASTC

    Latest Texture compression format allowing more quality control by specifying block size and supports alpha compression. Available on some devices at this point.

  2. You will then be prompted for a location to save your packaged game. For now create a new folder on the desktop and select that as the location to save your project to.

  3. While your project is being packaged a packaging message will appear in the bottom right corner showing the progress of the packing.

    package_toast.png

  4. Once packaging is successful, a Packaging Complete message will appear in the bottom right of the editor.

    Packageing_Completed.png

  5. Navigate to the folder that was created in step two and in this folder you should have a new folder named specifically for the texture type you selected when packaging. In this example, the folder is named Android_ETC1.

  6. Open up the Android_ETC1 folder and then Double-click on the Install_[ProjectName]_Development.bat batch file to install the project on your Android device.

    You must have your Android device plugged into your development PC via USB to deploy the project to your device. If you do not have your device plugged in running the .BAT file will do nothing.

We are currently packaging in Development because we are testing this game, but when your game is complete, you can package it in Shipping by hovering over the Build Configurations option in the Package Project menu.

  1. In the File menu, go to Package Project > Android and select the Texture format you want to package. For this example, we will choose Android ETC1 as it is supported by all devices.

    Different devices support different Texture formats depending on the hardware they run on. See, Android Development Reference for a detailed breakdown of the various formats.

    Format

    Description

    ETC1

    Supported by all Android based devices but cannot compress alpha textures (they are stored uncompressed). Recommend using an RGB and a separate alpha texture if need alpha to get better compression.

    ETC2

    Supported by all OpenGL 3.x class devices and supports alpha compression.

    ATC

    Supported by Qualcomm Adreno GPUs and supports alpha compression.

    DXT

    Supported by Nvidia Tegra GPUs and supports alpha compression.

    PVRTC

    supported by PowerVR GPUs and supports alpha compression.

    ASTC

    Latest Texture compression format allowing more quality control by specifying block size and supports alpha compression. Available on some devices at this point and will be

  2. You will be prompted for a save location for your packaged game, which should default to your project folder. Create a new folder and call it Android_Builds.

  3. While your project is being packaged a packaging message will appear in the bottom right corner showing the progress of the packing.

    package_toast.png

  4. Once packaging is successful, a Packaging Complete message will appear in the bottom right of the editor.

    Packageing_Completed.png

  5. Navigate to the folder that was created in step two and in this folder you should have a new folder named specifically for the texture type you selected when packaging. In this example, the folder is named Android_ETC1.

  6. Open up the Android_ETC1 folder and then Double-click on the Install[ProjectName]Development_armv7-es3.command file to install the project on your Android device.

    You must have your Android device plugged into your development PC via USB to deploy the project to your device. If you do not have your device plugged in running the .command file will do nothing.

  1. Opening the File menu, scroll down to Package Project, and hover your mouse curser over Android before selecting Android (ETC1).

    LinuxAndroid_Step31.png

    Different devices support different Texture formats depending on the hardware they run on. See, Android Development Reference for a detailed breakdown of the various formats.

    Format

    Description

    ETC1

    Supported by all Android based devices but cannot compress alpha textures (they are stored uncompressed). Recommend using an RGB and a separate alpha texture if need alpha to get better compression.

    ETC2

    Supported by all OpenGL 3.x class devices and supports alpha compression.

    ATC

    Supported by Qualcomm Adreno GPUs and supports alpha compression.

    DXT

    Supported by Nvidia Tegra GPUs and supports alpha compression.

    PVRTC

    supported by PowerVR GPUs and supports alpha compression.

    ASTC

    Latest Texture compression format allowing more quality control by specifying block size and supports alpha compression. Available on some devices at this point and will be

  2. After the Open Directory menu appears, create a new folder entitled Android_Builds using the New Folder button.

    LinuxAndroid_Step32.png

  3. Now, click the Open button to begin the packaging process.

    LinuxAndroid_Step33.png

  4. You should see a progress indicator in the bottom right corner while UE4 packages your project.

    LinuxAndroid_Step34.png

  5. At the end of the packaging process, you should see a message telling you that the packaging process has completed.

    LinuxAndroid_Step35.png

  6. Navigate to the Android_Builds folder, where you should see a folder entitled Android_ETC1.

    LinuxAndroid_Step36.png

  7. Open the Android_ETC1 folder, where you'll find the files that were created during the packaging process.

    LinuxAndroid_Step37.png
    You should see the Installation and Uninstallation shell scripts (.sh) along with the Android Application Package (.apk) that contains all of the files you need to install the project onto any Android device that supports the ETC1 compression scheme.

  8. Now, open up the terminal from this folder's location by right-clicking inside of the folder and selecting Open in Terminal.

    LinuxAndroid_Step38.png

  9. Enter ./Install_LinuxAndroidProject_Development-arm64.es2.sh into the terminal to install the project onto your Android device.

    LinuxAndroid_Step39.png

    If you're having trouble running the shell script, try entering adb devices into the terminal to verify that your device is indeed, connected to your computer.

  10. During the installation process, the shell script should flush the following output to your terminal

    LinuxAndroid_Step40.png

    When the shell script has completed the installation process, you should see an Installation successful message.

End Result

When completed you will now have a .APK file that contains your UE4 project that can now be deployed via the .BAT file to any Android based smartphone like in the following image.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback