godotengine / godotengine/godot

Creating Android additional pack files (DLC) always includes .NET runtime when using Mono version

Open
#95,312 6 comments 1 reaction 0 assignees View on GitHub
bug discussion platform:android topic:dotnet topic:export
Dominant language
C++
Stars
117k
Forks
26.8k
PR merge metrics
PR metrics pending

Description

### Tested versions

-Reproducible in Godot 4.2.2 stable [15073afe3], Godot 4.3RC3 [03afb92ef]

### System information

Godot v4.3.rc3.mono - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3080 Ti Laptop GPU (NVIDIA; 31.0.15.3179) - 12th Gen Intel(R) Core(TM) i9-12950HX (24 Threads)

### Issue description

When using C#, any pack file created for the android platform gets mono included (increasing the size by ~80MB) even if it's just exporting a resource like a texture.

### Steps to reproduce

Probably can do this in any project, but I used KennyNL's open source project (https://github.com/KenneyNL/Starter-Kit-3D-Platformer) as a test bed. Simply export a pack file with the texture "colormap.png" and notice mono gets included. Then create a pack file for the Windows platform and notice it does not include mono and is significantly smaller.

![TextureExportSettings](https://github.com/user-attachments/assets/55344b68-e5ce-4ec8-816b-6457b615dd68)
![FileSizeDifferenceBetweenPlatforms](https://github.com/user-attachments/assets/72f79201-9b5a-4799-81d3-dda3aaa627d0)
![MonoBeingIncludedWithAndroid](https://github.com/user-attachments/assets/c8be346f-713d-4e36-ac5e-2ebad668f304)
![NoMonoInWindowsPackFile](https://github.com/user-attachments/assets/a8da2ac1-96ea-430f-b8f7-cfa227fceb5d)

### Minimal reproduction project (MRP)

https://github.com/KenneyNL/Starter-Kit-3D-Platformer

Contributor guide

Open the contributing guide

Research direction

Use the linked Starter-Kit-3D-Platformer reproduction project and export a pack containing colormap.png for Android and Windows. Compare the pack contents and sizes, then trace the Android export path to determine why Mono is included. Done means a resource-only Android pack no longer includes the Mono runtime unnecessarily and remains valid.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, csharp
Domain
build-system, game-dev, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.