我正在尝试在Android Studio中构建AnysoftKeyboard。 我有Java 9(jdk 9)和适当的ndk(android-ndk-r14b),正如GitHub中的创建者所说。 我还更改了local.properties文件以显示正确的路径。 但是,我仍然遇到一些错误。 您可以在下面找到这些错误。
运行任务错误: org.gradle.api.tasks.TaskExecutionException:任务':base:compileDebugJavaWithJavac
的执行失败java编译器错误:引起原因:java.lang.BootstrapMethodError:java.lang.NoClassDefFoundError:com / sun / tools / javac / util / JavacMessages $ ResourceBundleHelper 造成原因:java.lang.NoClassDefFoundError:com / sun / tools / javac / util / JavacMessages $ ResourceBundleHelper 引起原因:java.lang.ClassNotFoundException:com.sun.tools.javac.util.JavacMessages $ ResourceBundleHelper
这是错误的屏幕截图: AnySoftKeyboard Compile Error,Run Tasks Error
该项目使用gradle(我不熟悉),因此,如果我错过了任何重要的步骤,请指导我进行解决。
我是否缺少某些东西并出现了这些错误?我该怎么办?预先感谢。
答案 0 :(得分:3)
我有类似的问题,并且在“编译”中没有显示任何错误。我尝试清理和重建没有任何成功。我通过使用菜单文件中的 Invalidate Caches / Restart (使缓存/重新启动无效)找到了问题,重新启动后,我设法看到了编译错误。
答案 1 :(得分:1)
仅遵循官方文档,我就成功构建了一个项目。我认为您只是忘记设置 JAVA_OPTS
添加 java.se.*
如下所述的来源而已。这就是为什么您在上面的stacktrace错误中丢失了java.se
的原因。资源。
要开发此项目,您需要:
Java 10-获取OpenJDK或AdoptOpenJDK。
确保您具有环境变量JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
。这是确保JVM宽容不是为Java9 + JVM设计的库所必需的。
local.properties
文件以指向该文件(即,确保其中有sdk.dir=/path/to/android/sdk
)。local.properties
文件以指向该文件(即,确保其中有ndk.dir=/path/to/android/ndk
)。答案 2 :(得分:0)
由以下原因引起:java.lang.BootstrapMethodError:java.lang.NoClassDefFoundError:com / sun / tools / javac / util / JavacMessages $ ResourceBundleHelper
要删除该行错误提示下方的错误注释。