They are smart engineers though and I have no doubt that if C++ had been the best choice for the platform, we would not be writing apps in java ...
tbh, I am really tired of the simplistic 'because java' argument with nothing to back it up ...
I have no love for the language (although I think it gets more flak than it deserves) but I have spent a lot of time working on the performances of Android apps and none of the issues I have fixed would have been any different in another language.
So given that I enjoy C++, when conding on my own, that is what I end up using for hobby coding between mobile platforms. But the NDK and JNI wrapping take the fun out of it.
By design, the NDK can only access a very small part of the platform APIs.
It is not an issue if you are making something where you are supposed to use the NDK (like a drawing app or a game), but for a 'traditional' app, that's another matter.
But if Clojure did support properly Android and CoreCLR, I would probably use it instead.
As things are, I might go Xamarin in the future.
Otherwise, Kotlin borrows many niceties with c# and allows you to directly use the platform APIs.
Even if some of the code looks like written by devs recovering from years of exposition to hungarian notation.