当前位置: 首页 > 面试题库 >

导入NotNull或Nullable且Android Studio无法编译

潘英豪
2023-03-14
问题内容

当我将@NotNull或@Nullable批注添加到参数时,Android Studio会自动帮助我添加/lib/annotations.jar并导入

import org.jetbrains.annotations.NotNull
import org.jetbrains.annotations.Nullable;

但是之后,该项目将无法编译。如果我也删除了注释但保留了import语句,则该项目仍然无法编译。 但是,
如果我删除了NotNull和Nullable的import语句,则项目编译 正常

Android Studio出现一般错误:

Gradle: 
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':Bugtester:compileDebug'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

gradlew compileDebug从cmd 运行会给出一些提示:

:Bugtester:compileDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':Bugtester:compileDebug'.
> Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable to point to the according directory.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

因此,我检查了环境变量,并将它们设置为:

JAVA_HOME=C:\Program Files (x86)\Java\jre7
JDK_HOME=C:\Program Files\Java\jdk1.7.0_21\

有人对此有任何想法吗?(我是Java和android编程的新手)


问题答案:

我想,正确的方法是在build.gradle依赖项中使用MavenCentral存储库中的原始JetBrains库(此示例中的最新可用版本):

dependencies {
    implementation 'com.intellij:annotations:+@jar'
    ...
}


 类似资料:
  • 我有一个Spring实体,其中有一个用javax.validation.constraints中的@NotNull注释的字段 问题是,如果为name字段设置了空值,则将其存储在数据库中。但是,如果我按以下方式更改类,它会引发我想要接收的异常: ApplicationContext-JPA 由于我使用的是存储库,因此我还报告了corrisponding实体存储库:

  • 问题内容: 当它们出现在的字段/获取器上时,它们@Entity之间有什么区别?(我通过Hibernate保留了Entity )。 它们每个都属于什么框架和/或规范? 位于中。在中说 带注释的元素不能为空 但是它没有提到数据库中元素的表示形式,那么为什么要在列中添加约束呢? 问题答案: 是JSR 303 Bean验证批注。它与数据库约束本身无关。由于Hibernate是JSR 303的参考实现,因此

  • 我试图从djangotoolbox.fields使用Listfield,但它给我一个错误说: 我做错了什么?

  • 应用程序昨晚运行时正在编译。今天早上它抛出了这个错误:

  • 问题内容: 当它们出现在的字段/获取器上时,它们之间有什么区别?(我通过 Hibernate 保留了Entity )。 它们每个都属于什么框架和/或规范? 位于中。在javadoc中说 带注释的元素不能为null 但是它没有说数据库中元素的表示形式,那么为什么要在列中添加约束呢? 问题答案: 是JSR 303 Bean验证 批注。它与数据库约束本身无关。由于Hibernate是JSR 303的参考

  • 我尝试使用transcrypt将python文件转换为JS,使用命令。在我的python脚本中有一个对JSON的导入: 将目标代码保存在:/home/sarwagya/desktop/hello/target/org.transcrypt.runtime.js将目标代码保存在:/home/sarwagya/desktop/hello/target/re.translate.js将目标代码保存在:/