If Java is open and free, then why did Android decide to rewrite Java? I notice a lot of companies seem to avoid Java so there must be some sort of a catch.
Android is quickly moving away from Java to make Kotlin the default language nowadays, it's probably in part due to the Java lawsuit (and in part to add language features quicker without changing the VM).
No indeed but they are clearly phasing out Java as the default language in the future, I don't see much plan to fully adopt Java 8 (only partial support for now) and Java 9 (no support) for Android. Since they are using their custom ART Runtime, it's not even impossible they would add VM instructions specific to Kotlin in the future (I don't have any knowledge of that yet but that would not surprise me).
That will only happen when Android Frameworks and lower level stack gets rewriten in Kotlin.
No mention of Kotlin in Treble documentation, only Java and C++.
It is like hoping UNIX derivatives will use anything other than C on their kernels.
AOSP commit messages show initial support for Java 9 and their clamp down in reflection for private APIs done in Android P seems to be a step towards Java modules.
I see an easier path just rebooting everything with Fuchsia than having them rewriting Android in Kotlin.