I’m working on an openXR project with 2022.1.23f1 in Ubuntu 22.10 and it’s working fine and I can build binaries with it for Android (to run on Quest).
Just opened the same project with 2022.2.1f1 and the build fails with several errors similar to:
Building Library/Bee/artifacts/Android/87lik/rjkl_erences_hq.o failed with output:
clang: error: no input files
UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) (at /home/bokken/build/output/unity/unity/Modules/IMGUI/GUIUtility.cs:189)
I’ve also tried with the latest beta (2022.2.0b16) and it also fails building the project.
First, make a blank project with a single blank scene and prove that it builds successfully.
If the blank project does NOT build, go fix your Unity installation or your other tools, such as Android SDK, NDK, JDK, etc. It may even be necessary to change to a different version of Unity3D. It is generally best to stay with LTS versions of Unity3D.
Until you can build a blank project to the target platform, don’t fiddle with anything else.
Once you can build a blank project, now bisect the problem by bringing over parts of your current project and building it one subsystem at a time, perhaps stubbing things out that might trigger compiler errors.
Most often things that prevent building are third-party libraries such as Firebase.
Once you identify the subsystem, go to the documentation for it and make sure you are doing it correctly.
It may also be helpful to work through a tutorial or two for whatever subsystem is making the build fail.
Android build not building:
Recently (circa July 2022) there have been reports of Unity’s installer failing to install the Android Tools.
Here was how I brought up Unity2020.3.41 and the Android SDK 31 on October 30, 2022:
This is super annoying, very easy to reproduce and most likely very easy to fix.
Instead of symlinking the tools:
$ ls -la ld64.lld
ld64.lld -> lld
they are now scripts which directly execute the tool:
$ cat ld64.lld
lld
That will to execute whatever tool is first in PATH, which on Linux is going to be the host’s system tools. God knows what happens on Windows.
How to reproduce:
Run Linux
Install Unity 2022.2.18f1 with Android build support
Build a project for Android
Yes, there are workarounds like the script linked in Build failure on Android + Unity 2022.2.0b14 but it’s tedious, difficult to integrate in Docker and shouldn’t have been needed in the first place since this is something that should’ve been caught by the Unity CI. Or any manual test for that matter.
I can if you’re fine with duplicates: https://discussions.unity.com/t/899766 (note: 2022)
The workaround is just that; a workaround for something that shouldn’t have passed the release process to begin with. Get your release processes straight.
I’m sorry if I come off as grumpy, but it’s mostly because I am. This is a common platform trying to build for a major platform, but it has just been left broken for half a year. Maybe we hit corner cases, but how on earth have you not noticed that Linux->Android doesn’t work? For 6 months?