Supporting Java 8 requires updating the vm & OS, which is difficult to do in the Android ecosystem. It may happen in the future but backwards compatability will be tough since the phone manufacturers lag so badly on platform upgrades. I'm not even getting into the Oracle v Google spat that may slow down adoption of a newer version of Java.
For that reason Kotlin is a lot more viable today than Java 8. Maybe someday Java 8 will make it to Android, but that day is definitely not today. Even after it is released in the newest devices, it probably won't be widespread for 18+ months.
edit: no one should downvote the parent question it is a legit technical ask without an obvious answer.
$ jdk-1.8-64/bin/javac -target 1.6 -source 1.6 LambdaTest.java
warning: [options] bootstrap class path not set in conjunction with -source 1.6
LambdaTest.java:16: error: lambda expressions are not supported in -source 1.6
Runnable r2 = () -> System.out.println("Hello world two!");
^
(use -source 8 or higher to enable lambda expressions)
1 error
1 warning
Trying to heed the error: $ jdk-1.8-64/bin/javac -target 1.6 -source 8 LambdaTest.java
javac: source release 8 requires target release 1.8There is a project that patches Java 8 bytecode and replaces all lambda invocations and method references with anonymous class instantiations. It's called RetroLambda and lets Android devs use Java 8 lambdas in their code. It does open a whole new pit of issues though.
https://github.com/orfjackal/retrolambda
Sounds like there might be some things that are missing or incomplete, but having lambdas and the Stream API would be a huge step forward.
These JVM based languages are able to support the latest and greatest features however because they end up compiling down to Java 7 byte code, which can in turn be converted to Dalvik/ART byte code.
Java 9 brings modules.
Java 10 has on its roadmap value types, JNI replacement, GPGPU support, new array model and whatever they might still consider.
If one assumes e.g. in comparison Apple will in 2 years have 95% of devices capable of running Swift 3 apps vs. 15% of Android devices capable of Java 8, much less 9/10 ... it could be quite a competitive disadvantage for Android, as well as argument for adopting a forward-looking JVM language dedicated to compiling to 1.6 bytecode if you plan to do Android development.
But I'm not ctbattags, and I'm not psychic, so I could be wrong...
From a technical point of it just seemed obvious to me.