The code at
native_method:328 seems incorrect, why would you do std::decay_t&?
Comment mine:
auto wrapper = [field, initializer] (JNIEnv& e, Object& obj, /std::decay_t&/Args... args) // TODO why reference?
This causes wrapping of constructors to fail.