当我向参数添加@NotNull或@Nullable注解时,Android Studio会自动帮助我添加/lib/annotations. jar并导入
import org.jetbrains.annotations.NotNull
import org.jetbrains.annotations.Nullable;
但在此之后,项目将无法编译。如果我也删除注解但保留import语句,项目仍然无法编译。但是如果我删除NotNull和Nullable的import语句,项目将编译 fine!
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.
从cmd运行gradlew compileDebug
会给出一些提示:
: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编程都是新手)
9条答案
按热度按时间of1yzvn41#
我想,正确的方法是在您的build.gradle依赖项中使用MavenCentral存储库中的原始JetBrains库(本示例中为最新可用版本):
ktecyv1j2#
你也可以使用安卓自带的
@NonNull
和@Nullable
:在常量条件和异常和**@NotNull/@Nullable problems中,单击配置注解并选择Android的注解。
您可能还想在常量条件和异常**下 checkout 建议@可空注解...,或者调整其他选项。
esbemjvw3#
用于使用Android支持标注,如- @Nullable、@NonNull等。在您的项目中必须导入Android支持标注库。只需将此行添加到Gradle文件中的dependensies
dependencies { compile 'com.android.support:support-annotations:+' }
并将包导入类。
对于使用@Nullable注解:
对于@非空
更多信息,您可以在这里找到Android developers
mjqavswn4#
目前,Android API或支持库中没有NonNull/Nullable注解。您也无法使用IntelliJ注解,因为在使用Gradle构建时,它们不在编译类路径中。
但是,您可以轻松地创建自己的,非常简单:
关闭后,您可以配置IntelliJ(或Android Studio)将此注解(以及匹配的
@Nullable
)识别为用于空值检查的默认注解。为此,请进入IntelliJ首选项中的
Inpections
下,然后在检查树中的Probable Bugs
下找到@NotNull/@Nullable problems
条目。选择条目,在右下角你会看到一个按钮“Configure Annotations”,这将允许你设置你自己的注解作为intelliJ将用于这个检查的注解。
hsgswve45#
在2015年,你可能会使用android.support.annotation包中的注解。我只是不确定他们是什么时候添加的,因为在docs中没有“在API级别X中添加”这句典型的话,而且我也不想阅读博客等。〉]
c7rzv4ha6#
我在gradle-5.1.1-Android Studio 3.4中遇到了这个问题,并且出现了类似的错误- * 编译失败;有关详细信息,请参阅编译器错误输出。任务':app:compileDebugJavaWithJavac'. * 等的执行失败。在本例中,我使用
并且最重要的是错误将被清除。
axkjgtzd7#
只需导入androidx.annotation.Nullable即可实现此目的
yeotifhr8#
最好的方法是使用maven依赖项
1.设置存储库路径,方法是添加
1.添加依赖项
1.利润!
rjjhvcjd9#
对于Maven,添加依赖项: