当前位置: 首页 > 知识库问答 >
问题:

为什么Java11在Android Studio中给出TaskExecutionException?

滕祯
2023-03-14

所以,我正在做一个现有的大型公司项目,那里的东西很旧/不推荐使用,我正试图一步一步地改进它。

现在我正在尝试将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是一个构建变体名称。

共有1个答案

孔正文
2023-03-14

答:从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