@nbransby Looks like the latest EAP version of
kotlinx.coroutines is built with an earlier pre-release (1.3-M2) version of the compiler, and the
1.3.0-dev-* builds reject them. The easiest solution is to use a stable version of
kotlinx.coroutines, though you can force the compiler to skip this check as well by passing
-Xskip-metadata-version-check into the compiler args.
Also, the situation with
kotlinx.coroutines and Gradle 4.8+ incompatibility is caused by the fact that the library’s Native parts have been published with Gradle metadata enabled, which is an experimental Gradle feature that is deliberately non-backward-compatible, according to the spec.
The same may happen with libraries built with
kotlin-multiplatform and published with experimental Gradle metadata enabled: they may fail to get resolved with newer Gradle versions. Unfortunately, Gradle metadata is exactly what’s required for publishing a multiplatform library as a single Maven module, so, if a library is published with no metadata, one has to specify dependencies on its platform-specific parts (e.g.
my-lib-js) rather than a single dependency (
my-lib) in case a library has Gradle metadata.
Overall, this publishing mode should be considered experimental until the Gradle metadata feature becomes stable.