Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android项目上设置自定义Java编译器参数?_Java_Android_Gradle_Android Gradle Plugin_Javac - Fatal编程技术网

如何在Android项目上设置自定义Java编译器参数?

如何在Android项目上设置自定义Java编译器参数?,java,android,gradle,android-gradle-plugin,javac,Java,Android,Gradle,Android Gradle Plugin,Javac,我将在我的gradle项目文件的末尾添加以下内容: gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs += ['-Xep:MissingOverride:ERROR', '-Xep:MissingCasesInEnumSwitch:ERROR',] } } 然而,在我的代码中,如果我在某处删除@Overr

我将在我的gradle项目文件的末尾添加以下内容:

gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
        options.compilerArgs += 
            ['-Xep:MissingOverride:ERROR', 
             '-Xep:MissingCasesInEnumSwitch:ERROR',]
    }
}

然而,在我的代码中,如果我在某处删除@Override注释或删除switch语句,我的Android项目仍然会构建。它不应该因为错误而失败吗?

我在谷歌上搜索了你的问题,找到了这个 它描述了您的问题,解决方案如下所示:

allprojects { 
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
        }
    }
}

看起来android项目的gradle构建与java项目不同,您无法访问任务CompileJava本身,正如我在第一条评论中所述

我用谷歌搜索了你的问题,找到了这个 它描述了您的问题,解决方案如下所示:

allprojects { 
    gradle.projectsEvaluated {
        tasks.withType(JavaCompile) {
            options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
        }
    }
}

看起来android项目的gradle构建与java项目不同,您无法访问任务CompileJava本身,正如我在第一条评论中所述

我不知道android项目的行为是否不同,但对于我们的java EE构建,我实现了以下内容:compileJava{options.fork=true options.forkOptions.executable='javac'options.compilerArgs.addAll['-APackageAcronym='+gradle.ext.packageAcronym'-s',gradle.ext.generatedQueriesDir]}因为compileJava是它自己的任务。你把compileJava放在根级别吗?如果在本例中这样做,我会收到以下错误消息:错误:找不到方法compileJava…是的,我将其放在根级别。我认为android gradle的构建会有所不同?只是想试一试:对不起,我浪费了你的时间。不,谢谢你的建议!感谢您抽出时间我在谷歌上搜索了一下,似乎android真的隐藏了任务compileJava并拒绝访问它。但我发现这种平静似乎适用于其他用户所有项目{gradle.projectsEvaluated{tasks.withTypeJavaCompile{options.compilerArgs我不知道它对于android项目是否有不同的行为,但对于我们的JavaEE构建,我实现了这个:compileJava{options.fork=true options.forkOptions.executable='javac'options.compilerArgs.addAll['-apapackageacronym='+gradle.ext.packageAcronym'-s',gradle.ext.generatedquerysdir]}因为compileJava是它自己的任务。你把compileJava放在根级别吗?如果我这样做的话,我会得到以下错误消息:错误:找不到方法compileJava…是的,我把它放在根级别。我认为android gradle版本的情况有所不同?只是想尝试一下:对不起,我浪费了你的时间。不,谢谢你的建议n!感谢你给我时间。我在谷歌上搜索了一下,似乎android真的隐藏了任务compileJava并拒绝访问它。但我发现这种平静似乎适用于其他用户allprojects{gradle.projectsEvaluated{tasks.withTypeJavaCompile{options.compilerArgs