I followed this https://docs.unrealengine.com/latest/INT/Platforms/Android/GettingStarted/4/index.html but when I try to run my recently launched app on my smartphone I immediately get “Unfortunately, projectname has stopped.” Why?
Ok, I failed to explain what I did exactly:
I followed the instructions here Setting Up Unreal Engine Projects for Android Development | Unreal Engine 5.2 Documentation which include installing NVIDIA CodeWorks for Android 1R6, setting up my android device as Developer, creating my project which is Third Person for Moible/Tablet, Scalable 2D or 3D, No starter content.
I opened the ThirdPersonExampleMap as instructed and launched a few times, each time the icon shows up on my smartphone (Asus Zenfone 4, Android 4.4.2) but when I click it, it crushes immediately.
Things I did/tried that AREN’T written in the GettingStarted page:
- Reinstalling codeworks (with API 19 and sample files)
- Deleting Saved and Intermediate Folders (saved recreates itself) inside my project’s location
- I put all the right folders in the right boxes (as I saw online) at Edit>Project Settings>Android SDK:
- C:/NVPACK/android-sdk-windows
- C:/NVPACK/android-ndk-r12b
- C:/NVPACK/apache-ant-1.8.2
- C:/NVPACK/jdk1.8.0_77
- matchndk (I tried latest too)
- android-19
- Clicking “configure now” (switched from red to green bg) and switched targeted API under it to 19 at Edit>Project Settings>Android:
Nothing changes the outcome of the launch. I attached the outlog for a combination of the above.
PLEASE help, I really want to use UE4 :<
4.17 should have SDK API level set to latest (at least android-23).
It looks like everything packaged properly from your log so what you need to look at is the logcat output from the device to see why it failed on start.
Before I learn how to get the logcat output, I’ve tried setting the SDK API level to latest, and gotten these lines as part of the output log:
LogPlayLevel: Invalid or unsupported command “–silent update lib-project --path JavaLibs/downloader_library --target android-24”
LogPlayLevel: Supported commands are:
LogPlayLevel: android list target
LogPlayLevel: android list avd
LogPlayLevel: android list device
LogPlayLevel: android create avd
LogPlayLevel: android move avd
LogPlayLevel: android delete avd
LogPlayLevel: android list sdk
LogPlayLevel: android update sdk
LogPlayLevel: Program.Main: ERROR: AutomationTool terminated with exception: ERROR: C:/NVPACK/android-sdk-windows/tools/android.bat failed with args --silent update lib-project --path JavaLibs/downloader_library --target android-24
LogPlayLevel: Program.Main: AutomationTool exiting with ExitCode=1 (Error_Unknown)
LogPlayLevel: Completed Launch On Stage: Deploy Task, Time: 20.509901
LogPlayLevel: BUILD FAILED
PackagingResults: Error: Launch failed! Unknown Error
with the two error lines** in red. If I force another launch then the icon does show up on my Android(I guess that’s how I succeeded before too). The reason I think this happens is because Android 4.4.2 CAN’T use SDK API larger than 19. It’s also hinted at with the UE4 tip when hovering the mouse over the NDK box: “… Note that choosing android-21 or later won’t work on pre 5.0 devices.” And also when I downloaded the CodeWorks the installation line for version 4.4.2 was API 19 (which is the reason I chose it).
Do you think maybe using UE4.16 would fix this for me (allow me to pick android-19, that’d be strange though)? or that trying a higher version of android (on a different smartphone, I can’t try till next week) would let me open the app?
Now, I’ll be working on the logcat. Thanks for the reply!
EDIT: Actually, now no matter what I try it gives the upper lines - it really wants that android-24 lol
Alright! Sorry for taking so long, I think I ruined my own Codeworks somehow, but reinstalling them fixed it.
Here’s the logcat for when I tap MyProject on my smartphone, and the warnings and errors copied to another txt.
EDIT: According to what I understand, it means my phone is on a x86 environment which UE4 doesn’t support unless I toy with Github… So yeah, better just use an emulator.
Yeah, this looks like an .so compatibility issue, but most Intel-based Android devices have Houdini for converting ARMv7 code to run (just slowly). What model device is this?
It’s ASUS Zenfone 4 Android 4.4.2, but I gave up on trying to get it to load there… I’m trying to make it work on AVD manager’s emulators. And it’s giving me .so issues as well. It can’t find libgnustl_shared.so, same as android - Why isn't libgnustl_shared.so being copied from my APK? - Stack Overflow and c++ - Android ndk link failed on libgnustl_shared.so - Stack Overflow. I’m currently learning a little of what’s what and then I’ll try to follow the instructions there.
Idk what’s Houdini, but if you have any ideas I’m all ears.
thanks for your sharing. Nice tutorial for beginners.