Exporting for Android

See also Compiling for Android. Exporting for Android has fewer requirements than compiling Godot for Android. The following steps detail what is needed to set up the Android SDK and the engine.

Install OpenJDK 11

OpenJDK 11.

Download the Android SDK

Download and install the Android SDK.

  • Android Studio version 4.1 or later.

  • instructions.

  • required packages are installed as well.

  • Android SDK Platform-Tools version 30.0.5 or later

  • Android SDK Build-Tools version 30.0.3
  • Android SDK Platform 31
  • Android SDK Command-line Tools (latest)
  • CMake version 3.10.2.4988404
  • NDK version r23c (23.2.8568313)
  • command line tools.

  • sdkmanager command to complete the setup process:

    1. sdkmanager --sdk_root=<android_sdk_path> "platform-tools" "build-tools;30.0.3" "platforms;android-31" "cmdline-tools;latest" "cmake;3.10.2.4988404" "ndk;21.4.7075529"

    Note do not use an Android SDK provided by your distribution’s repositories as it will often be outdated.

    Create a debug.keystore

    ~/.android directory on Linux and macOS, in the C:\Users\<user>\.android\ directory on Windows). If you can’t find it or need to generate one, the keytool command from the JDK can be used for this purpose:

    1. keytool -keyalg RSA -genkeypair -alias androiddebugkey -keypass android -keystore debug.keystore -storepass android -dname "CN=Android Debug,O=Android,C=US" -validity 9999 -deststoretype pkcs12

    debug.keystore file in your current directory. You should move it to a memorable location such as %USERPROFILE%\.android\, because you will need its location in a later step. For more information on keytool usage, see this Q&A article.

    Setting it up in Godot

    Enter the Editor Settings screen. This screen contains the editor settings for the user account in the computer (it’s independent of the project). Scroll down to the section where the Android settings are located: In that screen, 2 paths need to be set:

  • Android Sdk Path should be the location where the Android SDK was installed. - For example %LOCALAPPDATA%\Android\Sdk\ on Windows or /Users/$USER/Library/Android/sdk/ on macOS.
  • .keystore file - It can be found in the folder where you put the debug.keystore file you created above. Once that is configured, everything is ready to export to Android! Note “Could not install to device.”, make sure you do not have an application with the same Android package name already installed on the device (but signed with a different key). must remove the application in question from the Android device before exporting to Android again.

    Providing launcher icons

    xxxhdpi density screens) and will automatically generate lower-resolution variants. There are two types of icons required by Godot:
  • Main Icon: The “classic” icon. This will be used on all Android versions up to Android 8 (Oreo), exclusive. Must be at least 192×192 px.
  • Adaptive Icons: Starting from Android 8 (inclusive), Adaptive Icons were introduced. Applications will need to include separate background and foreground icons to have a native look. The user’s launcher application will control the icon’s animation and masking. Must be at least 432×432 px. See also Google Design has provided a nice article that helps to understand those rules and some of the capabilities of adaptive icons. Caution xxxhdpi) to avoid being clipped by the launcher. If you don’t provide some of the requested icons, Godot will replace them using a fallback chain, trying the next in line when the current one fails:
  • Main Icon: Provided main icon -> Project icon -> Default Godot main icon.
  • Adaptive Icon Foreground: Provided foreground icon -> Provided main icon -> Project icon -> Default Godot foreground icon.
  • Adaptive Icon Background: Provided background icon -> Default Godot background icon. It’s highly recommended to provide all the requested icons with their specified resolutions. This way, your application will look great on all Android devices and versions.

    Exporting for Google Play Store

    Uploading an APK to Google’s Play Store requires you to sign using a non-debug keystore file; such file can be generated like this:
    1. keytool -v -genkey -keystore mygame.keystore -alias mygame -keyalg RSA -validity 10000
    APK signing. Now fill in the following forms in your Android Export Presets:
  • Release: Enter the path to the keystore file you just generated.
  • Release User: Replace with the key alias.
  • Release Password: Key password. Note that the keystore password and the key password currently have to be the same. Your export_presets.cfg file now contains sensitive information. If you use a version control system, you should remove it from public repositories and add it to your .gitignore file or equivalent. Export With Debug checkbox while exporting.

    Optimizing the APK size

    Armeabi-v 7a or Arm 64 -v 8a in your project’s Android export preset. This will create an APK that only contains a library for a single architecture. Note that applications targeting ARMv7 can also run on ARMv8 devices, but the opposite is not true. just an ARMv7 library. To solve this, you can upload several APKs to Google Play using its Multiple APK support. Each APK should target a single architecture; creating an APK for ARMv7 and ARMv8 is usually sufficient to cover most devices in use today. Optimizing a build for size for more information.

    Troubleshooting rendering issues

    To improve out-of-the-box performance on mobile devices, Godot automatically uses low-end-friendly settings by default on both Android and iOS. Mobile rendering limitations for more information.