Inkompatibel, da diese Komponente eine mit Java 11 kompatible Komponente deklariert und der Verbraucher eine mit Java 10 kompatible Komponente benötigte

Lesezeit: 5 Minuten

Benutzeravatar von Thomas_SO
Thomas_SO

In meiner build.gradle-Datei habe ich die Version einer Abhängigkeit aktualisiert (nämlich: com.db:microservice-commons). Nach dem Laden der Gradle-Änderungen erhalte ich die folgende Fehlermeldung:

> Build file 'C:\Projects\Container\mschmidt\mount\booking-service\standalone\build.gradle' line: 50

   > A problem occurred evaluating project ':standalone'.
   > Could not resolve all files for configuration ':standalone:runtimeClasspath'.
   > Could not resolve com.db:microservice-commons:2.4.1.
     Required by:
         project :standalone
         project :standalone > project :service
      > No matching variant of com.db:microservice-commons:2.4.1 was found. The consumer was configured to find a runtime of a library compatible with Java 10, packaged as a jar, preferably optimized for standard JVMs, and its dependencies declared externally but:
          - Variant 'apiElements' capability com.db:microservice-commons:2.4.1 declares a library, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares an API of a component compatible with Java 11 and the consumer needed a runtime of a component compatible with Java 10
              - Other compatible attribute:
                  - Doesn't say anything about its target Java environment (preferred optimized for standard JVMs)
          - Variant 'runtimeElements' capability com.db:microservice-commons:2.4.1 declares a runtime of a library, packaged as a jar, and its dependencies declared externally:
              - Incompatible because this component declares a component compatible with Java 11 and the consumer needed a component compatible with Java 10
              - Other compatible attribute:
                  - Doesn't say anything about its target Java environment (preferred optimized for standard JVMs)
          - Variant 'samplessources' capability com.db:microservice-commons:2.4.1:
              - Incompatible because this component declares documentation and the consumer needed a library
              - Other compatible attributes:
                  - Doesn't say anything about how its dependencies are found (required its dependencies declared externally)
                  - Doesn't say anything about its target Java environment (preferred optimized for standard JVMs)
                  - Doesn't say anything about its target Java version (required compatibility with Java 10)
                  - Doesn't say anything about its elements (required them packaged as a jar)
                  - Doesn't say anything about its usage (required a runtime)

Zeile 50+ der Datei „C:\Projects\Container\mschmidt\mount\booking-service\standalone\build.gradle“ sieht wie folgt aus:

manifest {
    def manifestClasspath = configurations.runtimeClasspath.collect { it.getName() }.join(' ')
    attributes 'Archiver-Version': 'Plexus Archiver'
    attributes 'Build-Jdk': org.gradle.internal.jvm.Jvm.current()
    attributes 'Main-Class': 'com.db.service.standalone.Standalone', 'Class-Path': manifestClasspath
    }
}

Ich habe keine Ahnung, was ich davon halten soll. Project JDK und Gradle JVM sind auf Java 11 eingestellt. Dieser Beitrag hier: Der Verbraucher wurde so konfiguriert, dass er eine Laufzeit einer mit Java 11 kompatiblen Bibliothek findet, die als JAR verpackt ist und deren Abhängigkeiten extern deklariert sind, aber: … bezieht sich auf dasselbe Problem, hat mir aber nicht geholfen.

Irgendwelche Ideen, was hier los ist?

Bei IntelliJ IDEA musste ich ändern, welches JDK Gradle zum Ausführen verwendet. Der ursprüngliche Wert war JDK 11, ich habe ihn in JDK 17 geändert.

Bildschirmfoto

  • Hatte das gleiche Problem mit Android Studio (Electric Eel) in einem neuen Projekt. Aktualisiert die Gradle JDK von der Standardeinstellung 8 auf 11, um die Projektsynchronisierung zu korrigieren.

    – qix

    14. Februar um 8:47 Uhr

  • Danke schön! Ich habe alle meine projektspezifischen JDK-Versionskonfigurationen überprüft und nichts gefunden, was noch auf 11 verwies, und das hat mich wahnsinnig gemacht. Aber das hat das Problem für mich behoben.

    – bcody

    26. Mai um 7:15 Uhr

Benutzeravatar von Thomas_SO
Thomas_SO

Ich habe das Problem gefunden und gelöst.

Ich habe zwei Zeilen geändert, die die Kompatibilität definieren build.gradle Datei.

Aus:

compileOptions {
    sourceCompatibility 10
    targetCompatibility 10
}

Zu:

compileOptions {
    sourceCompatibility 11
    targetCompatibility 11
}

  • Auch unser Team ist auf dieses Problem gestoßen. Es wurde dadurch verursacht, dass die Gradle-Version von IntelliJ eine andere JVM verwendete. Um dieses Problem zu lösen, gehen Sie zu den Einstellungen: Build, Execution, Deployment > Build Tools > Gradle > Gradle JVM und ändern Sie dort die JVM-Version

    – jvwilge

    2. September 2022 um 8:36 Uhr


  • Danke @jvwilge, ich habe gerade ungefähr eine Stunde damit verbracht, mir den Kopf zu kratzen, nachdem ich sourceCompatibility/targetCompatibility deklariert habe, und stehe immer noch vor diesem Problem!

    – Renato

    9. September 2022 um 12:10 Uhr

  • ebenfalls, danke @jvwilge, ich kämpfe seit Stunden dagegen.

    – Evan Knowles

    20. September 2022 um 11:40 Uhr


  • Danke @jvwilge. Ich war verwirrt, warum immer noch Java 8 erwähnt wird, obwohl ich das JDK in den Projekteinstellungen auf 11 gesetzt habe.

    – Aiono

    27. September 2022 um 11:52 Uhr

  • @jvwilge danke Mann! Denken Sie darüber nach, Ihren Kommentar als Antwort festzulegen, um anderen Leuten zu helfen, die keine Kommentare sehen.

    – Vrian7

    11. Januar um 12:44

Ändern Sie die Java-Version, die Gradle verwendet. Wählen Sie wie im Bild unten gezeigt Java 11. Dann ist es in Ordnung.
Geben Sie hier eine Bildbeschreibung ein

  • Identisch mit stackoverflow.com/a/75355554/19665422

    – Thorbjørn Andersen – UFST

    17. März um 12:26

  • Für diejenigen, die an mehreren Projekten mit unterschiedlichen Versionsanforderungen arbeiten, können Sie es auf „Project SDK“ einstellen, um standardmäßig das in den Projekteigenschaften angegebene JDK zu verwenden (keine Ahnung, warum dies nicht die Standardeinstellung ist).

    – FreakyDan

    12. April um 15:21 Uhr

Bei mir funktioniert es. Ändern Sie den Code in der Datei app/build.gradle wie folgt:

android {
    compileSdkVersion 33

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
    ...
}

oder Sie können es in der Datei-/Projektstruktur ändern

Geben Sie hier eine Bildbeschreibung ein

Geben Sie hier eine Bildbeschreibung ein

In meinem Fall ging es nicht um die Java-Version. es bleibt immer noch 1,8 (8). Wenn Sie die neueste Version von Kotlin verwenden, sollten Sie Ihre aktualisieren Gradle-Version Zu 6.7.1 oder höher In Projektstruktur. Ich empfehle einen Wechsel Gradle-Plugin-Version auf den neuesten Stand Stabile Version.

Amans Benutzeravatar
Ein Mann

Inkompatibel, da diese Komponente eine API einer mit Java 11 kompatiblen Komponente deklariert und der Verbraucher eine Laufzeit einer mit Java 10 kompatiblen Komponente benötigt

Die Bedeutung dieses Fehlers besteht darin, dass Gradle mit SDK 11 ausgeführt werden möchte und das von Ihrer Projektstruktur bereitgestellte SDK die Version 10 aufweist

Beim Einrichten des Projekts in IntelliJ war ich auch mit dem gleichen Problem konfrontiert.

„Inkompatibel, da diese Komponente eine API einer mit Java 17 kompatiblen Komponente deklariert und der Verbraucher eine Laufzeit einer mit Java 11 kompatiblen Komponente benötigte“

Lösung: Ich habe das Java SE Development Kit 17 heruntergeladen und JDK 17 in die Projektstruktur integriert. Es hat funktioniert.

Benutzeravatar von johnnyasd12
johnnyasd12

Mit IntelliJ IDEA hat es bei mir funktioniert file -> invalidate caches -> invalidate and restart nach Korrektur der Version von Gradle JDK/JVM.

1453660cookie-checkInkompatibel, da diese Komponente eine mit Java 11 kompatible Komponente deklariert und der Verbraucher eine mit Java 10 kompatible Komponente benötigte

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy