【问题标题】:Gradle build fails with NoClassDefFoundError for sun.awt.X11GraphicsEnvironment in :mergeDebugResourcesGradle 构建失败并出现 NoClassDefFoundError for sun.awt.X11GraphicsEnvironment in :mergeDebugResources
【发布时间】:2017-09-25 17:40:00
【问题描述】:

我在尝试构建 microG 时总是收到此错误:

$ ./gradlew build
Skipping debug jar:microg-ui-tools:preBuild UP-TO-DATE
:microg-ui-tools:preDebugBuild UP-TO-DATE
:microg-ui-tools:checkDebugManifest
:microg-ui-tools:preDebugAndroidTestBuild UP-TO-DATE
:microg-ui-tools:preDebugUnitTestBuild UP-TO-DATE
:microg-ui-tools:preReleaseBuild UP-TO-DATE
:microg-ui-tools:preReleaseUnitTestBuild UP-TO-DATE
:microg-ui-tools:prepareComAndroidSupportAnimatedVectorDrawable2531Library
:microg-ui-tools:prepareComAndroidSupportAppcompatV72531Library
:microg-ui-tools:prepareComAndroidSupportPreferenceV142531Library
:microg-ui-tools:prepareComAndroidSupportPreferenceV72531Library
:microg-ui-tools:prepareComAndroidSupportRecyclerviewV72531Library
:microg-ui-tools:prepareComAndroidSupportSupportCompat2531Library
:microg-ui-tools:prepareComAndroidSupportSupportCoreUi2531Library
:microg-ui-tools:prepareComAndroidSupportSupportCoreUtils2531Library
:microg-ui-tools:prepareComAndroidSupportSupportFragment2531Library
:microg-ui-tools:prepareComAndroidSupportSupportMediaCompat2531Library
:microg-ui-tools:prepareComAndroidSupportSupportV42531Library
:microg-ui-tools:prepareComAndroidSupportSupportVectorDrawable2531Library
:microg-ui-tools:prepareComTakisoftFixPreferenceV725310Library
:microg-ui-tools:prepareDebugDependencies
:microg-ui-tools:compileDebugAidl UP-TO-DATE
:microg-ui-tools:compileDebugNdk UP-TO-DATE
:microg-ui-tools:compileLint UP-TO-DATE
:microg-ui-tools:copyDebugLint UP-TO-DATE
:microg-ui-tools:compileDebugRenderscript UP-TO-DATE
:microg-ui-tools:generateDebugBuildConfig UP-TO-DATE
:microg-ui-tools:generateDebugResValues UP-TO-DATE
:microg-ui-tools:generateDebugResources UP-TO-DATE
:microg-ui-tools:mergeDebugResources
java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment
:microg-ui-tools:mergeDebugResources FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':microg-ui-tools:mergeDebugResources'.
> java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvironment

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

BUILD FAILED

Total time: 2.932 secs

这是在一个甚至没有安装 X 服务器的无头服务器上!发布时也会发生这种情况(mergeReleaseResources 除外)。我尝试使用--info--debug 运行,但它没有给我任何有用的东西。我也尝试过使用 Oracle 的 JDK 而不是 OpenJDK 并在机器构建上安装本地 X 服务器,但这也没有改变任何东西。这是一个新克隆的 repo 副本,尽管我不认为该错误是 microG 特有的。

这是我运行./gradlew build --stacktrace的结果:https://gist.github.com/milkey-mouse/cb6b75b5116cf369603dec46e214e914

【问题讨论】:

    标签: java android gradle x11 headless


    【解决方案1】:

    您可以尝试在gradle.properties 文件中将-Djava.awt.headless=true 添加到您的jvmargs

    org.gradle.jvmargs=-Djava.awt.headless=true
    

    另外请看示例here

    这里是similar question,但与 Gradle 无关。

    【讨论】:

    • 我觉得很傻...我尝试了大约 5 种不同的变体,将 java.awt.headless=true 添加到不同的配置文件和环境变量并将其添加到 gradle.properties 终于成功了!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2017-12-24
    • 1970-01-01
    相关资源
    最近更新 更多