Build error in 2023.1.0a22

We just upgraded from 2022.2.1f1 to 2023.1.0a22.

When we build our project we get multiple instances of the following errors:

Assertion failed on expression: ‘classAndNamespaceIndex.size() == 0’

ArgumentException: assemblyName
UnityEditor.RuntimeClassRegistry.AddSerializedClass (System.String assemblyName, System.String className) (at <3e71e083846d4f14a92f58a607b12d8e>:0)

No additional information available so really difficult to tell which assemblies are actually causing the issues. Perhaps there is some build log we dont know about which contains more info?

It turns out it is actually built successfully when just pressing “Build”, even with the errors. The .exe is created and can be run. However using “Build and Run” does not work and no .exe is created.

Playing in editor works fine.

We have:
5 local C# projects. 1 is Assembly-Charp and 4 are using .asmdefs.
URP package is a Custom package to which have made some minor adjustments but it compiles fine in VS and worked in previous versions.

Has anyone seen anything similar?

How to troubleshoot build failures:

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:

Android Gradle errors and other related stuff:

Thanks for you reply Kurt. We did however manage to figure it out anyway.

Turns out this had to do with us using serialized fields with dual level of generics. Optional<Value2>.

Optional is a struct which works more or less like Nullable but also works in Unity.
Value2 is 2D vector for arbitrary types.

When we remove this everything works as expected. This has worked for many years so clearly they messed something up recently.

They got a bug report for xmas present :slight_smile: