It Costs too much time and memory in Finding AOT stubs in plugins

When I build my project today, my Unity crashed several times. I found it quests too much memory.
When the building pipeline shows this process, “Finding AOT stubs in plugins”, the memory grows crazy. Then Unity crashed.


I closed almost everything in my windows 11.And then try again. It succeed.
Why?
In the generated “AotStubs.cs”, Plugin Stubs, there is nothing.

    // --------------- Plugin Stubs
    // --------------- Asset Stubs

8149445--1058504--QQ图片20220523201518.png

By the way, I want to ask a question. How can I remove almost 90% generated codes what I doesn’t need in this file. Such like these:

    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_Events_UnityEvent.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_Events_UnityEvent.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_Events_UnityEvent.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_Events_UnityEventBase.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_Events_UnityEventBase.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_Events_UnityEventBase.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_ParticleSystem_MinMaxCurve.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_ParticleSystem_MinMaxCurve.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_ParticleSystem_MinMaxCurve.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_ParticleSystem_MinMaxGradient.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_ParticleSystem_MinMaxGradient.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_ParticleSystem_MinMaxGradient.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_Quaternion.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_Quaternion.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_Quaternion.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Glyph.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Glyph.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Glyph.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_GlyphMetrics.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_GlyphMetrics.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_GlyphMetrics.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_GlyphRect.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_GlyphRect.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_GlyphRect.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_LowLevel_GlyphPairAdjustmentRecord.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_LowLevel_GlyphPairAdjustmentRecord.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_LowLevel_GlyphPairAdjustmentRecord.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_Character.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_Character.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_Character.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_FontWeightPair.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_FontWeightPair.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_FontWeightPair.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_SpriteCharacter.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_SpriteCharacter.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_SpriteCharacter.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_SpriteGlyph.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_SpriteGlyph.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_SpriteGlyph.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_TextStyle.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_TextStyle.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_TextStyle.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_UnicodeLineBreakingRules.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_UnicodeLineBreakingRules.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_UnityEngine_TextCore_Text_UnicodeLineBreakingRules.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_Unity_Mathematics_bool2.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_Unity_Mathematics_bool2.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_Unity_Mathematics_bool2.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_Unity_Mathematics_bool2x2.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_Unity_Mathematics_bool2x2.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_Unity_Mathematics_bool2x2.op_Inequality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_Unity_Mathematics_quaternion.op_Implicit
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_Unity_Mathematics_quaternion.op_Equality
    // Unity.VisualScripting.Generated.PropertyProviders.PropertyProvider_Unity_Mathematics_quaternion.op_Inequality
2 Likes

Having the same issue. I’m not even able to build my game because of the issue.

2 Likes

Did anyone solve this? It’s a constant battle for me when trying to build a Quest APK

1 Like

Finding AOT stubs in plugins
I met the same problem. When I exported the project in the morning, the time had passed for 3 hours, but it was still not finished, and the memory consumption was extremely high. Now I re-processed it like this, and I don’t understand the problem at all. I may not be able to find a solution.

Finding AOT stubs in plugins
Memory usage continues to increase, time goes on indefinitely, until the memory is full, still no feedback… Now the scene is empty, there is nothing, and there is no way to export the project. So I have no idea what the problem is…
8981515--1235707--AOT2.PNG

Now the memory is almost full and still nothing is happening, I have to call out the task manager and force unity to close …………

Finding AOT stubs in plugins :
Through the elimination method, the problem was found to be caused by unity’s built-in visual script. Uninstall the visual script project can be exported normally.
If your plugin requires a visual script, you can also go to the Player Settings to remove the visual script macro definition.

2 Likes

Thank you very much, that fixed for me.

My suggestion would be:
Remove some Node Library you don’t need, from the VisualScripting project settings list

Or maybe you can override the method that create AOT content
I don’t reaaly like this way, but it did works

bump, the same, pain, 3min build, 30min finding aot

Here you guys go.