Utiliser IntelliJ IDE ne permet de compiler aucun projet. Captures d'écran des paramètres ci-dessous:
JDK d'occasion:
Projet SDK et niveau de langue:
Niveau de langue:
Quelqu'un a des idées?
Si vous utilisez Maven
Ajoutez le plug-in du compilateur à pom.xml
sous le noeud project
de niveau supérieur:
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
(Tiré des commentaires.)
Remarque: si vous ne voulez pas réimporter votre projet, la seule chose à faire est de modifier le pom et de le réimporter. IntelliJ choisira les paramètres corrects sans avoir à les modifier manuellement.
Cela ressemble au genre d'erreur générée par Maven lorsque le plug-in du compilateur n'est pas configuré correctement. Voici un exemple de configuration de compilateur Java 8.
<project xmlns="http://maven.Apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
<!-- ... -->
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<!-- ... -->
</project>
Java compiler
Dans la fenêtre de paramétrage, définissez le bytecode Target sur 1.8
(ou 9 pour Java9)
Beaucoup de réponses concernant Maven ont raison, mais vous n'avez pas à configurer directement le plug-in.
Comme décrit sur la page wiki du plugin Apache Maven Compiler, vous pouvez simplement définir les 2 propriétés utilisées par le plugin.
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
J'ai corrigé cela en allant dans Structure du projet -> Modules , recherchez le module en question, cliquez sur Dépendances onglet, remplacez Module SDK
par Project SDK
.
Je l'ai corrigé simplement en changeant la version de compilation cible en 1.8. C'est dedans:
Fichier >> Paramètres >> Construction, Exécution, Déploiement >> Compilateur >> Compilateur Java
Dans mon cas, j'ai résolu ce problème en ouvrant le fichier .iml du projet (il se trouve dans le dossier racine du projet et porte le même nom que le nom du projet) et en remplaçant la ligne <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />
par <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
.
J'ai tout configuré comme dans d'autres réponses ici, mais pour une raison quelconque, le fichier .iml mis à jour de façon incorrecte.
Je l'ai corrigé en modifiant mon fichier POM. Remarquez le dernier commentaire sous la réponse la plus votée.
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
La source doit correspondre à la cible.
Je viens de passer un moment à lutter avec le même problème. La seule chose qui a fonctionné pour moi n’utilisait pas le MVN construit (3.3.9), mais le pointait vers une version téléchargée externe (3.5.0). Finalement, le projet s’est ouvert et tout était bon.
Si vous travaillez avec Android-studio 1.3, suivez les étapes ci-dessous -
Aller à Fichier - Structure du projet
Sous modules - app - Propriétés onglet, choisissez Compatibilité de la source - 1.8 et
Compatibilité cible - 1.8 .
Et vous êtes prêt à partir.
Sous le fichier compiler.xml, vous trouverez:
<bytecodeTargetLevel>
<module name="your_project_name_main" target="1.8" />
<module name="your_project_name_test" target="1.8" />
</bytecodeTargetLevel>
et vous pouvez changer la valeur cible de votre ancienne valeur à la nouvelle pour moi.
Avec Intellij, en utilisant Maven, vous devez vérifier qu'Intellij a importé automatiquement votre projet. Vous pouvez vérifier en cliquant sur l'onglet Maven à droite de votre éditeur.
Si votre projet n'est pas ici, ajoutez le fichier pom.xml
en cliquant sur +
.
De toute évidence, le projet doit également avoir le <build/>
correspondant:
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
Pour moi, le problème était que Maven ne pouvait pas trouver les configurations appropriées, car ces éléments étaient spécifiés dans pom parent.
Changer le fichier -> Paramètres -> Construire, Exécution, Déploiement -> Maven -> Fichier de paramètres utilisateur pour pointer vers mes paramètres personnalisés avec des référentiels appropriés a résolu le problème qui était caché.
Vous avez découvert le problème en consultant Aide -> Afficher le journal dans l'Explorateur -> en cliquant sur le fichier journal, alors que précédemment l'erreur ne figurait que dans le titre et "Java.lang.NullPointerException" dans la console.
La solution du problème est très simple . Vous devez ouvrir le fichier .idea/compiler.xml sur votre projet İdea et
Vous devez écrire la version cible appropriée
J'ai vérifié tout ce qui précède, mais l'erreur persiste.
Mais réimporter tous les projets Maven (bouton de rechargement dans le panneau Projets Maven) fonctionne dans mon cas.
Ce problème se produit si votre module est configuré avec un processeur Annotation et qu'un autre module ne l'est pas. Définissez la même configuration pour tous les modules, car il s'agit d'une dépendance cyclique.
Si aucune des autres réponses ne fonctionne, vérifiez votre module SDK .
J'ai eu cette erreur pop-up pour moi après avoir mis à jour le SDK de projet à 1.8, le compilateur Javac à 1.8, etc.
(sous Linux) Allez à File > Project Structure...
puis dans la fenêtre qui s’ouvre, sélectionnez Modules
sous Project Settings
. Sélectionnez le module en question dans la liste, puis l'onglet Dependencies
et assurez-vous que Module SDK
est défini correctement.
Dans votre fichier de niveau d'application Gradle >> compileOptions, ajoutez ces deux lignes.
Android {
compileOptions {
...
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
...
}
}