Недавно я столкнулся с той же проблемой, и статический внутренний класс работал в моей ситуации.
Я прочитал о том, почему это на самом деле работает, и это имеет для меня больше смысла, поэтому я решил поделиться. Внутренний класс - это класс, который вложен в другой класс и имеет ссылку на создание экземпляра его содержащего класса. Через эту ссылку он может получить доступ к содержащим классам членам, как если бы это был сам содержащий класс. Поэтому он связан с экземпляром содержащего класса и, следовательно, не может иметь статических членов (поскольку они не будут связаны с содержащим классом).
Объявление вложенного класса как статического развязывает его от экземпляра содержащего класса и, следовательно, может иметь свои собственные статические переменные (и все, что может иметь обычный класс). Конечно, он не сможет получить доступ к членам содержащего класса.