Je reçois cette exception java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7 and java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.reflection.ReflectionCache ) lorsque je lance l'application Spring Boot
J'utilise les outils ci-dessous
Version STS 3.9.10
Ouvrez JDK 14 64 bits
Botte à ressort 2.2.5
Cela fonctionnait bien avec oracle jdk mais il ne fonctionnait pas avec openjdk. Je n'utilise aucune bibliothèque groovy. Il s'agit d'un projet de démarrage à ressort basé sur maven.
14 Réponses :
utilisez-vous une bibliothèque tierce qui apporte des dépendances org.codehaus.groovy ? Si oui, vous pouvez essayer de remplacer vous-même les dépendances groovy requises par les versions les plus récentes.
Dans mon cas, c'était l' org.liquibase: liquibase-groovy-dsl , donc j'ai fait ceci:
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-groovy-dsl</artifactId>
<version>2.1.1</version>
<exclusions>
<exclusion>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
</exclusion>
<exclusion>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-sql</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-sql</artifactId>
<version>3.0.3</version>
</dependency>
Comment exécutez-vous l'application? C'est probablement parce que vous utilisez Gradle comme système de construction et JDK14 et la version Gradle est ancienne. Référence: https://github.com/gradle/gradle/issues/10248
Si vous utilisez Gradle Wrapper, reportez-vous à $PROJECT_ROOT/gradle/wrapper/gradle-wrapper.properties . La propriété distributionUrl doit être: distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
S'il s'agit d'une version plus ancienne, modifiez-la, exécutez ./gradlew clean build et réessayez.
Merci beaucoup, j'ai essayé beaucoup de choses en essayant de faire fonctionner React Native sur ma machine. Cela a fait l'affaire!
Pour suivre cela, j'utilise maven et brew m'a récemment mis à niveau vers OpenJDK 14, j'ai donc commencé à recevoir cette erreur. À partir du lien de cette réponse vers le problème de gradle, j'ai trouvé ce problème génial : issues.apache.org/jira/browse/GROOVY-9211 qui a depuis été corrigé dans Groovy 2.5.10 - alors assurez-vous de mettre à niveau votre version groovy vers cela un ou plus récent. Résolu le problème pour moi!
Merci beaucoup monsieur cela a parfaitement fonctionné!
Vérifiez que votre projet fonctionne avec Java 14 même s'il est préparé pour Java 8.
Mon IntelliJ Idea donnait la même erreur en essayant d'exécuter une tâche Gradle qui fonctionnait parfaitement en ligne de commande avec JDK 8. Le JDK par défaut du projet ItelliJ Idea était 14 cependant.
Je résous ce problème lors de l'intégration de Facebook 7.19.2 et Google play Games 0.10.09 .
Dans mon cas, JDK et SDK utilisant (et d'autres dans Edit/Preferences/External -> Tools-Android ) les chemins par défaut Unity:
JDK
C:/Program Files/Unity/Hub/Editor/2019.2.12f1/Editor/Data/PlaybackEngines/AndroidPlayer\SDK
SDK
C:/ProgramFiles/Unity/Hub/Editor/2019.2.12f1/Editor/Data/PlaybackEngines/AndroidPlayer/Tools\OpenJDK\Windows
Dans les variables d'environnement (propriétés système / avancées) ajouté ensuite:
Rechercher (ou cliquez sur une nouvelle variable sous Variables utilisateur)
JAVA_HOME et ajoutez le chemin JDK racine.
JAVA_BIN et ajoutez le chemin JDK / bin
JAVA_LIB et ajoutez le chemin JDK / lib
Ajoutez également ces chemins dans les variables système à la variable "Chemin".
N'utilisez pas le SDK de Unity par défaut et le JDK de non Unity par défaut
Redémarrez ensuite Unity (et un meilleur PC).
Puis dans Editor Unity - Assets/Play -> Service -> Resolve/Android -> Resolver/Force -> Resolve
Tout fonctionne bien.
J'ai eu le même problème sur un projet Maven & SpringBoot, pas de Gradle.
La dépendance à org.codehaus.groovy est probablement transitive via spring-cloud-contract-verifier. Exécutez mvn dependency:tree pour afficher toute l'arborescence de dépendances.
Je l'ai réparé en mettant à niveau la version spring-cloud-contract-maven-plugin vers 2.2.3-RELEASE
Si vous utilisez Android Studio 4.0 ou une version ultérieure et que vous rencontrez des erreurs comme ci-dessous
C:\Program Files\Android\Android Studio\jre
Ou
Cela dit que quelque chose ne va pas avec JDK, puis suivez les étapes ci-dessous pour résoudre l'erreur.
Étape 1 : supprimez d'abord les dossiers .gradle et .idea du répertoire du projet et redémarrez Android Studio. Assurez-vous qu'il a disparu de la corbeille.
Étape 2 : Accédez à la structure du projet
Étape 3: Sélectionnez Emplacement du SDK dans le panneau de gauche de la fenêtre Structure du projet.
Étape 4: Accédez à l' emplacement JDK et cliquez sur la flèche vers le bas, puis sélectionnez le jre au lieu de jdk
Cause: invalid type code: 17
Cause: invalid type code: fe
Cause: invalid type code: 13
java.lang.NoClassDefFoundError: Could not initialize class
Et cela résoudra les erreurs. Reconstruire le projet
Remarque: jre est livré avec l'installation d'Android Studio 4 pas sûr de l'ancienne version.
Cette solution fonctionne pour moi.
Passez au JDK 11, cela devrait fonctionner.
Dans mon cas, la combinaison était IntelliJ 2020.2, Kotlin 1.3.72, Maven 3.6.1 et SpringBoot 2.2.1. Aucun Gradle utilisé du tout dans le projet.
D'une manière ou d'une autre, IntelliJ était passé à utiliser OpenJDK14 - lors du retour à OpenJDK11, tout a recommencé à fonctionner.
Dans le fichier android/gradle/wrapper/gradle-wrapper.properties , assurez-vous que distributionUrl est la suivante:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
Remarque: si vous avez installé jdk 14
J'ai résolu ce problème en sélectionnant le chemin JRE installé dans window => preferences => java => JRE installé => supprimer l'existant et sélectionner dans le répertoire local.
Assurez-vous que la variable java_home est définie dans la variable d'environnement
Je l'ai résolu en modifiant simplement gradle-wrapper.properties dans le dossier gradle et non en .gradle:
de:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
à:
distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-all.zip
reconstruire et c'est ok.
Si vous recherchez une solution similaire à @godsim shared, mais pour le plugin gradle liquabase, modifiez votre section de configuration dans build.gradle pour exclure la dépendance groovy de liquabase:
dependencies {
...
liquibaseRuntime('org.liquibase:liquibase-core:3.8.1')
liquibaseRuntime('org.codehaus.groovy:groovy-all:3.0.3')
liquibaseRuntime 'org.postgresql:postgresql'
liquibaseRuntime('org.liquibase:liquibase-groovy-dsl:2.1.2')
liquibaseRuntime('org.liquibase.ext:liquibase-hibernate5:3.10.2')
liquibaseRuntime('org.springframework.boot:spring-boot-starter-data-jpa')
liquibaseRuntime sourceSets.main.output
...
}
puis ajoutez manuellement groovy dans la section des dépendances:
configurations {
...
liquibaseRuntime.exclude group: "org.codehaus.groovy"
}
Ce problème n'est résolu pour moi que lorsque j'ai mis à jour compileSdkVersion et targetSdkVersion à 30 avec minSdkVersion 19