From oracle website:
1) As with instance methods and variables, an inner class is associated with an instance of its enclosing class and has direct access to these object methods and fields.
2) Since the inner class is associated with an instance, it cannot define any static members.
As I understand it:
If the inner class has its own static field, and the static field must be initialized before the class instance;
But the inner class only exists with an outterclass instance, so it cannot initialize its static member until the instance is created, and then in Contradiction.
source share