I am using android ble with kotlin. I ported the Blinky example to kotlin. There is a reference escaped in object construction when on construction the BLEManager invokes getGattCallbacks on the child class which isn't constructed until after the parent object. This creates an unworkable bug and the Kotlin folks recommend never calling non-final instance methods during initialization.