使用AnysoftKeyboard(Android)构建问题
使用AnysoftKeyboard(Android)构建问题
我正在尝试在Android Studio中构建AnysoftKeyboard。按照GitHub上的创建者所说,我已经安装了Java 9(jdk 9)和相应的ndk(android-ndk-r14b)。我也已经更改了local.properties文件以显示正确的路径。然而,我仍然遇到了一些错误。以下是这些错误:\n运行任务错误:\norg.gradle.api.tasks.TaskExecutionException:执行任务\':base:compileDebugJavaWithJavac\'失败\nJava编译器错误:Caused by: java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: com/sun/tools/javac/util/JavacMessages$ResourceBundleHelper\nCaused by: java.lang.NoClassDefFoundError: com/sun/tools/javac/util/JavacMessages$ResourceBundleHelper\nCaused by: java.lang.ClassNotFoundException: com.sun.tools.javac.util.JavacMessages$ResourceBundleHelper\n这是错误的屏幕截图:\nAnySoftKeyboard编译错误,运行任务错误\n该项目使用gradle,我对此不太熟悉,所以如果我漏掉了任何重要的步骤,请指导我解决问题。\n是否有什么我忽略了而导致这些错误?我应该怎么做?提前感谢。
原因:这个问题的原因是由于缺少com.sun.tools.javac.util.JavacMessages$ResourceBundleHelper类导致的。
解决方法:注释掉导致错误的代码行。
Caused by: java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: com/sun/tools/javac/util/JavacMessages$ResourceBundleHelper TO remove this error comment below line prone error.
以上就是(Build Problem with AnysoftKeyboard (Android))这个问题的出现原因和解决方法。
(Build Problem with AnysoftKeyboard (Android))这个问题出现的原因是忘记设置JAVA_OPTS,导致缺少java.se资源。解决方法是设置JAVA_OPTS为'-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'。另外,还需要通过命令行用gradle构建项目,或者在Android Studio的构建配置选项卡中设置JAVA_OPTS。
文章内容如下:
在遵循官方文档的指导下,我成功地构建了一个项目。我认为你忘记了设置JAVA_OPTS,并添加了java.se.*源,如下所述。这就是为什么你在上面的错误堆栈跟踪中缺少java.se资源的原因。
要开发这个项目,你需要:
- Java 10 - 获取OpenJDK或AdoptOpenJDK。
- 确保你有环境变量JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'。这是为了确保JVM对那些不是为Java9+ JVM设计的库宽容。
- git
- Android Studio
- 安装Android SDK API Level 28。设置local.properties文件指向它(即确保其中有sdk.dir=/path/to/android/sdk)。
- 安装Android NDK r14b。设置local.properties文件指向它(即确保其中有ndk.dir=/path/to/android/ndk)。
我已经设置了变量JAVA_OPTS(在我的系统中是这样的:JAVA_OPTS=-XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee)。我最终构建成功了,但不是在Android Studio中,而是通过在项目根目录中使用gradle在命令行中完成的。我想我遇到了一些证书错误,但最终解决了它们(链接:stackoverflow.com/a/40743987,stackoverflow.com/a/36427118)。我面临的主要问题是我无法在Android Studio中更改JDK(以使用JDK 10)。
你是通过cmd构建的,因为JAVA_OPTS需要在Android Studio的构建配置选项卡内设置。
我在Android Studio中设置了它,但仍然出现错误。我认为问题在于我无法更改Android Studio的默认JDK(请选择一个有效的JDK 8目录)。你有什么建议吗?
好的,那么在这种情况下,你需要通过控制台构建项目。
当我尝试从cmd构建时,我将JAVA_HOME设置为AdoptOpenJDK版本,并在系统变量中设置了JAVA_OPTS,但显示JAVA_HOME设置为无效目录。如何解决这个问题?
如果你使用的是Linux,确保已将变量(Java home和opts)导入到.bash_profile或.profile文件中。
感谢你的回复。但我在Windows操作系统上构建项目。
如果你是通过Win UI设置本地变量,请确保路径是正确的。你应该指向Java的Bin位置(而不是AdoptOpenJDK版本)。