使用IntelliJ IDE无法编译任何项目。下面的设置截图:
使用JDK:
项目SDK和语言级别:
语言水平:
有人有什么想法吗?
这看起来像是Maven在没有正确配置编译器插件时生成的那种错误。这是一个Java8编译器配置的示例。
<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>
如果您正在使用Maven
将编译器插件添加到顶层project节点下的pom.xml:
project
pom.xml
<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>
(摘自评论。)
注意:如果您不介意重新导入项目,那么您真正需要做的唯一事情就是更改pom并重新导入项目,然后IntelliJ将获取正确的设置,您不必手动更改它们。
您需要转到设置并在Java编译器下设置以下内容:
同时检查项目设置
有两种方法可以解决这个问题:
(File -> Settings -> Build, Execution, Deployment -> Java Compiler)
java compiler
在设置窗口中,将目标字节码设置为1.8
(或9为java9)
我通过项目结构->模块修复了这个问题,找到有问题的模块,单击依赖关系选项卡,将Module SDK更改为Project SDK。
Module SDK
Project SDK
我通过修改我的POM文件来修复它。请注意投票最高答案下的最后一条评论。
<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>
源必须与目标匹配。
在我的情况下,我通过打开项目. iml文件(它位于项目根文件夹中,名称与项目名称相同)并将行<orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />更改为<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />来修复此问题
<orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />
<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
我在这里配置了其他答案中的所有内容,但由于某种原因,Idea错误地更新了. iml文件。
我只是通过将目标编译版本更改为1.8来修复它。它在:
文件>>设置>>构建、执行、部署>>编译器>>Java编译器
许多关于Maven的答案是正确的,但您不必直接配置插件。
就像Apache Maven编译器插件的wiki页面中描述的那样,您可以设置插件使用的2个属性。
<project>[...]<properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties>[...]</project>
对我来说,问题是Maven无法找到正确的配置,因为这些项目是在父pom中指定的。
更改文件->设置->构建,执行,部署->Maven->用户设置文件以指向具有适当存储库的自定义设置,修复了隐藏的问题。
通过帮助->在资源管理器中显示日志->单击日志文件发现了这个问题,而以前只有标题中的错误和控制台中的“java.lang.NullPointerException”。
在compiler.xml文件中,您将找到:
<bytecodeTargetLevel><module name="your_project_name_main" target="1.8" /><module name="your_project_name_test" target="1.8" /></bytecodeTargetLevel>
你可以把目标值从原来的改成新的,我需要把它从1.5改成1.8
解决问题很简单。您必须在您的idea项目上打开.构想/compiler.xml文件并
您应该编写适当的目标版本
使用Intellij,使用Maven,您必须检查Intellij是否已自动导入您的项目。您可以通过单击编辑器右侧的Maven选项卡进行检查。
如果您的项目不在此处,请单击+添加pom.xml文件。
+
显然,项目还必须具有相关的<build/>:
<build/>
<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin>
如果您正在使用Android Studio 1.3,请按照以下步骤操作-
转到文件-项目结构
在模块-应用程序-属性选项卡下,选择源代码兼容性-1.8和
目标兼容性-1.8
你可以走了。
您需要转到/.idea/compiler.xml并将target更改为所需的jdk级别。
/.idea/compiler.xml
target
jdk
如果其他答案都不起作用,请检查您的模块SDK
在我将项目SDK更新为1.8、Javac编译器更新为1.8等后,我弹出了这个错误。对我来说,问题的设置是“模块SDK”。
(Linux)转到File > Project Structure...,然后在打开的窗口中,在Project Settings下选择Modules。从列表中选择有问题的模块,然后选择Dependencies选项卡,并确保Module SDK设置正确。
File > Project Structure...
Project Settings
Modules
Dependencies
我已经检查了上述所有内容,但错误仍然存在。
但是重新导入所有maven项目(Maven项目面板中的重新加载按钮)在我的情况下工作。
我一直在为同样的问题苦苦挣扎。唯一对我有用的不是使用内置的mvn(3.3.9),而是将其指向外部下载的版本(3.5.0)。最后,项目打开了,一切都很好。
不要忘记设置模块的依赖关系:
我只是重新导入maven按钮,然后错误消失了。
在您的Gradle应用级别文件>>compileOptions中添加这两行
android {compileOptions {...sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8...}}
如果您的模块配置了注释处理器而其他模块没有配置,则会出现此问题。为所有模块设置相同的配置,因为它是循环依赖。
下面的代码在我身边运行良好。我只是将其添加到pom.xml文件中。