所以,我正在做一个现有的大型公司项目,那里的东西很旧/不推荐使用,我正试图一步一步地改进它。
现在我正在尝试将JDK版本从Java1.8更新到Java11。所以我从Android Studio首选项设置进行了更改。
我还做了以下更改:https://developer.android.com/studio/releases/gradle-plugin#java-11
关于我的项目:
目标SDK版本:30
Android Studio:最新稳定版本
项目编码:50%代码Java50%代码静态编程语言
因此,当我进行上述2个更改并同步项目时,它成功同步,当我尝试运行此异常即将到来。
java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3137)
at java.base/java.lang.Class.getConstructor0(Class.java:3342)
at java.base/java.lang.Class.newInstance(Class.java:556)
Execution failed for task ':app:kaptPlaystoreDebugKotlin'.
> Internal compiler error. See log for more details
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:kaptPlaystoreDebugKotlin'
注意:playstoreDebug是一个构建变体名称。
答:从java8升级到java11时,有些库已被删除。如果要使用它们,需要将它们作为依赖项专门添加。
已回答此问题:
javax.xml.bind.模块路径或类路径上找不到JAXB-API的JAXBException实现
用JavaEE API替换已弃用的JPMS模块
将这些依赖项添加到pom/gradle中:
Gradle:
compile('javax.xml.bind:jaxb-api:2.3.0')
compile('javax.activation:activation:1.1')
compile('org.glassfish.jaxb:jaxb-runtime:2.3.0')
Pom:
<!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0-b170201.1204</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.activation/activation -->
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime -->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.0-b170127.1453</version>
</dependency>
我试着理解为什么我在IntelliJ中有Java11。当我在Intellij终端中运行时,我得到以下响应: 当我从Windows命令提示符运行相同的命令时,我会得到以下信息: 我真的不明白为什么我在Intellij终端中有Java 11,因为我有这些项目设置: 模块: Java编译器: 在pom.xml中:
我试图导入的应用程序中的gradle版本与JDK11不兼容,而JDK11正是android studio用作其嵌入式JDK的。我的机器上有JDK8。我已经尝试进入项目结构来更改JDK8位置的路径,但是如果我尝试更改它,就会出现错误。它说我必须选择一个有效的JDK11目录。如何让android studio使用JDK 8?错误截图
我正在使用python 2.7。win8上的9。当我尝试使用matplotlib绘图时,出现以下错误: 从pylab导入* 绘图([1,2,3,4]) [matplotlib.lines.Line2D对象位于0x0392A9D0] 我尝试了测试代码“python simple_plot.py--verbose help”,出现了以下警告: $HOME=C:\Users\XX matplotlib数
问题内容: 在我的实际项目中,这是我修改后的小程序,偶然发生。 我不知道为什么它给输出 10 吗? 之后,我放了两个零,仍然给出输出10。 然后我将 012 更改 为0123 ,现在输出83? 谁能解释为什么? 问题答案: 比我将012更改为0123,现在输出为83? 因为它被当作八进制基数(8),因为该数字的前导数字为0。因此,它对应的十进制值为10。 012: 0123:
问题内容: 我在以下一行中得到一个: 我正在打印所有值: 输出: 那我为什么要得到呢?请帮助。谢谢。完整的堆栈跟踪如下: 问题答案: 简单的答案:您在该位置没有得到NullpointerException- 至少不是根据您发布的stacktrace。Liferay的LoginAction没有原始的StrutsAction。如果您使用的是6.2 GA5,则这是引发NullpointerExcepti