使用 IntelliJ IDE 无法编译任何项目。设置截图如下:
使用的JDK:
https://i.stack.imgur.com/cpggk.png
项目 SDK 和语言级别:
https://i.stack.imgur.com/0gEQl.png
语言等级:
https://i.stack.imgur.com/8z6A4.png
有人有什么想法吗?
转到 File > Settings > Build, Execution, Deployment > Compiler > Java Compiler 如果在 Mac 上,它位于 Intellij IDEA > Preferences... > Build, Execution, Deployment > Java Compiler 将目标字节码版本更改为您模块的 1.8正在为。
如果您使用的是 Maven
将编译器插件添加到顶级 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 将选择正确的设置,您不必手动更改它们。
https://i.stack.imgur.com/OW3jL.png
还要检查项目设置
当您没有正确配置编译器插件时,这看起来像是 Maven 生成的那种错误。这是 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>
project
、build
和 plugins
下。
<source>1.8</source>
和 <target>1.8</target>
,可能会出现上述错误。
我发现的最快方法:
按:CTRL + SHIFT + A(对于 Mac ⌘ + SHIFT + A)
类型:java编译器
按:ENTER
在设置窗口中,将目标字节码设置为 1.8
(或 9 用于 java9)
有两种方法可以解决这个问题:
设置设置(文件 -> 设置 -> 构建、执行、部署 -> Java 编译器):将构建部分添加到您的 pom.xml:
关于 Maven 的许多答案都是正确的,但您不必直接配置插件。
如 Apache Maven 编译器插件的 wiki page 中所述,您只需设置插件使用的 2 个属性。
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
org.apache.maven.plugins:maven-compiler-plugin
,文档中的意思是在 pom 属性中设置该属性就足够了,主要是因为它们设置了插件的默认值,例如 < source>${maven.compiler.source}</source>
我通过转到 Project Structure 解决了这个问题 -> Modules,找到有问题的模块,点击Dependencies标签,将Module SDK
改为Project SDK
。
我只是通过将目标编译版本更改为 1.8 来修复它。在里面:
文件 >> 设置 >> 构建、执行、部署 >> 编译器 >> Java 编译器
您需要转到 /.idea/compiler.xml
并将 target
更改为所需的 jdk
级别。
https://i.stack.imgur.com/WNe7s.png
在我的情况下,我通过打开项目的 .iml 文件(它位于项目根文件夹,名称与项目名称相同)并将行 <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />
更改为 <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
来解决此问题
我在这里的其他答案中配置了所有内容,但由于某种原因,Idea 错误地更新了 .iml 文件。
我通过修改我的 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>
源必须与目标匹配。
我只是重新导入maven按钮,然后错误消失了。
https://i.stack.imgur.com/9Or08.png
在您的 Gradle 应用程序级别文件 >> compileOptions 添加这两行
android {
compileOptions {
...
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
...
}
}
如果您使用的是 Android-studio 1.3,请按照以下步骤操作 -
转到文件 - 项目结构
在 modules-app-Properties 选项卡下,选择 Source Compatibility -1.8 和
目标兼容性 - 1.8。
你很高兴。
在 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
使用 Intellij,使用 Maven,您必须检查 Intellij 是否已自动导入您的项目。您可以通过单击编辑器右侧的 Maven 选项卡进行检查。
https://i.stack.imgur.com/yA1Zf.png
如果您的项目不在此处,请单击 +
添加 pom.xml
文件。
显然,该项目还必须有相关的 <build/>
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
我刚刚花了一段时间来解决同样的问题。唯一对我有用的不是使用内置的 mvn(3.3.9),而是将其指向外部下载版本(3.5.0)。最后项目打开了,一切都很好。
https://i.stack.imgur.com/UHjwL.png
如果您的模块配置了注释处理器而其他模块未配置,则会出现此问题。为所有模块设置相同的配置,因为它将是循环依赖。
下面的代码在我身边工作正常。我只是将它添加到 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>
对我来说,问题在于 Maven 无法找到正确的配置,因为这些项目是在父 pom.xml 中指定的。
更改文件 -> 设置 -> 构建、执行、部署 -> Maven -> 用户设置文件以使用适当的存储库指向我的自定义设置,从而解决了原本隐藏的问题。
通过帮助->在资源管理器中显示日志->单击日志文件发现了问题,而之前仅在控制台中出现标题中的错误和“java.lang.NullPointerException”。
问题的解决方案非常简单。您必须在您的 İdea 项目上打开 .idea/compiler.xml 文件,然后
您应该编写适当的目标版本
如果其他答案都不起作用,请检查您的 Module SDK。
在我将项目 SDK 更新到 1.8、Javac 编译器更新到 1.8 等之后,我弹出了这个错误。对我来说有问题的设置是“模块 SDK”。
(在 Linux 上)转到 File > Project Structure...
,然后在打开的窗口中选择 Project Settings
下的 Modules
。从列表中选择有问题的模块,然后选择 Dependencies
选项卡,并确保正确设置了 Module SDK
。
我已经检查了以上所有内容,但错误仍然存在。
但是在我的情况下,重新导入所有 Maven 项目(Maven 项目面板中的重新加载按钮)有效。
Project Structure -> Project Settings -> Modules -> Denpendencies -> Module SDK
。