Can’t build and launch to Android (MacOS/UE5.6, Target Kindle Fire HD8):
Running:
/Users/USER/Library/Android/sdk/platform-tools/adb install -r “/Users/USER/Documents/Unreal Projects/MyProject7/Binaries/Android/MyProject7-arm64.apk”
adb: failed to install /Users/USER/Documents/Unreal
Projects/MyProject7/Binaries/Android/MyProject7-arm64.apk: Failure
[INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]
Hello there @1Superloss!
Checking with my peers, and considering the “INSTALL_FAILED_NO_MATCHING_ABIS” error, this sounds like the generated APK is missing the binaries for the CPU architecture your Kindle Fire uses.
From what we could find, Kindle Fire HD8 is 32-bit ARM (armeabi-v7a) only, while UE5 on Mac is packaging by default as arm64. That mismatch resulsts in the installation failure you are seeing,
In order to fix the problem, go to Project Settings > Platforms > Android > APK Packaging. There, under ABI, check armv7. You can leave arm64 enabled too, that way you get both in the same package.
Now, please rebuild the project. This should result in a multi-ABI APK, or two separated APKs, depending on your setup. In case the issue persists, perform a clean build, via deleting the Binaries, Intermediate, and Saved folders from your project, then build and deploy again.
Thanks @brs-sebascova! Appreciate the feedback.
I must be missing it, but I do not see an option for armv7 in the Platforms>Android>APL Packaging menus. I also did a search for “armv7” and did not see an option.
This is what I see (I am using UE5.6.1):
Maybe I missed installing something? I am super new to UE, this is my first experience so sorry if this is a silly user error. I downloaded the editor and then also selected the option to build for Android platforms which downloaded some additional content and allows me to build the apks.
Hello again!
No worries, and apologizes for the confusion, the documentation we were following was intendef for UE5.4. It seems that, for the latest version, UE only builds arm64 by default. In order to add other ABIs, like the one we need, armeabi-v7a, they must be added directly to the .ini file.
In short, go to your project folder, most likely YourProject>/Config/Android/AndroidEngine.ini, open it, and add the following section:
[/Script/AndroidPlatformEditor.AndroidTargetSettings]
bBuildForArm64=True
bBuildForArmV7=True
After that change, clear the engine’s cache, so it reads the new changes. In order to do so, go to your project’s main directory, and delete folders “DerivedDataCache” and “Saved”.
Now, you can restart UE and test a new build. Hope this helps!
Ok I think we’re getting closer!
Although I did not find a directory or file YourProject>/Config/Android/AndroidEngine.ini
I did find and edit YourProject>/Config/DefaultEngine.ini
However, it still only builds the arm64 version. So I edited the section called [/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] and also added the section you specified to include these two lines":
bBuildForArm64=False
bBuildForArmV7=True
However, now when I try to build (which I’m doing from Project Launcher > Launch), I get an error. When checking the log it identifies, I see this line:
At least one architecture must be specified in Android project settings.
BuildException: At least one architecture must be specified in Android project settings.
I also don’t see any binaries create (whereas before I set …Arm64=True I at least saw the arm64 apks created).
So I think I am configuring the build, but it doesn’t seem like UE can build the armv7 targets yet.
Thanks again @brs-sebascova