I can not get anvil to work with kotlin 1.7.20. Do...
# squarelibraries
p
I can not get anvil to work with kotlin 1.7.20. Does this require an anvil update to kotlin 1.7.20 or is there a different way to fix it?
> Could not resolve org.jetbrains.kotlinkotlin gradle plugin api1.7.10.
Required by:
project :library > com.squareup.anvilcom.squareup.anvil.gradle.plugin2.4.2 > com.squareup.anvilgradle plugin2.4.2 > org.jetbrains.kotlinkotlin gradle plugin1.7.10
> Multiple incompatible variants of org.jetbrains.kotlinkotlin gradle plugin api1.7.20 were selected:
- Variant org.jetbrains.kotlinkotlin gradle plugin api1.7.20 variant gradle70RuntimeElements has attributes {org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.jvm.environment=standard-jvm, org.gradle.jvm.version=8, org.gradle.libraryelements=jar, org.gradle.plugin.api-version=7.0, org.gradle.status=release, org.gradle.usage=java-runtime}
- Variant org.jetbrains.kotlinkotlin gradle plugin api1.7.20 variant gradle71RuntimeElements has attributes {org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.jvm.environment=standard-jvm, org.gradle.jvm.version=8, org.gradle.libraryelements=jar, org.gradle.plugin.api-version=7.1, org.gradle.status=release, org.gradle.usage=java-runtime}
j
Probably an Anvil release using ksp 1.7.20 compatible is needed.
p
But anvil isn’t using ksp?
j
Ah, I thought it was using ksp. Anyway this looks like the same problem when you are applying the version 1.7.20 to the KGP and 1.7.10 to the Kotlin Serialization plugin, both need the same version. I think Anvil needs to update to Kotlin 1.7.20 (including its compiler plugin).
z
Anvil is working fine for us on 1.7.20
p
Hm, maybe its related to us applying kotlin-gradle-plugin-api in a plugin ourself 🤔
On Android it is working, on multiplatform it’s not
t
Has anvil ever worked with multiplatform?
p
Yes sure, why not?
j
where does it read the annotations, common, jvm and android? and common is generated on jvm?
t
I've never used it, but my understanding is that it is built upon dagger, dagger generates java code, java doesn't run on non jvm targets
I guess multiplatform can mean Android and desktop/jvm
p
We use it to generate the factories in the Android source set