Proguard is breaking some reflection inside of Artemis, even though I have obfuscation disabled for Artemeis. I’m using configs to disable all obfuscation (rather than using -dontobfuscate):
Here is the mappings output from Proguard. It should just be ignoring net.mostlyoriginal, but it seems to be doing some kind of renaming.
If I use -dontobfuscate, then the issues don’t occur.
net.mostlyoriginal.api.system.SchedulerSystem → net.mostlyoriginal.api.system.SchedulerSystem:
net.mostlyoriginal.api.plugin.extendedcomponentmapper.M mSchedule → mSchedule
void () →
void process(com.artemis.Entity) → process
Why is Proguard doing any modification of those classes? It seems to modify nearly all classes:
org.lwjgl.system.windows.WindowProc → org.lwjgl.system.windows.WindowProc:
org.lwjgl.system.windows.WindowProc create(long) → create
org.lwjgl.system.windows.WindowProc createSafe(long) → createSafe
At runtime there is a crash related to reflection:
Exception in thread “main” com.artemis.MundaneWireException: Error while wiring net.mostlyoriginal.api.system.SchedulerSystem
at com.artemis.injection.CachedInjector.inject(Unknown Source)
at com.artemis.WorldConfiguration.initializeSystems(Unknown Source)