Это очень(неоправданно) сложно. Нативные приложения обычно идут одним из нескольких путей:
* ядро(нативные либы) на С++, интерфейс - на Java. Имхо, наиболее хороший путь, позволяет делать платформенные вещи и переиспользовать бизнес-логику.
* всё полностью на С++, интерфейс - OpenGL. Так делают в играх, или, например, Яндекс.Навигаторе. Выглядит обычно откровенно не-платформенно.
* всё полностью на С++, интерфейс - Qt. Это отдельная типа, тут ничего сказать не могу, не сталкивался.