首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在更新到AndroidStudio3.1之后,项目没有构建:程序类型已经存在: com.sun.activation.registries.LineTokenizer

在更新到AndroidStudio3.1之后,项目没有构建:程序类型已经存在: com.sun.activation.registries.LineTokenizer
EN

Stack Overflow用户
提问于 2018-03-30 14:09:49
回答 1查看 1.9K关注 0票数 5

我刚刚将我的Android更新到了3.1版,我对一条未知的错误消息感到惊讶:程序类型已经出现: com.sun.activation.registries.LineTokenizer

代码语言:javascript
复制
> :testeapn:transformClassesWithDexBuilderForDebug AGPBI:
> {"kind":"error","text":"Program type already present: com.sun.activation.registries.LineTokenizer","sources":[{}],"tool":"D8"}
> :testeapn:transformDexArchiveWithExternalLibsDexMergerForDebug FAILED
> 
> FAILURE: Build failed with an exception.
> 
> * What went wrong: Execution failed for task ':testeapn:transformDexArchiveWithExternalLibsDexMergerForDebug'.

在深入挖掘之后,我意识到问题是javax.mail库。所以,在删除了所有的.jar和对库的每一个提及之后,我可以重新构建,但是我删除了我的应用程序的这个功能。

现在我必须让我的应用再次发送邮件,但我找不到如何做到这一点,我请求你的帮助。

我在https://javaee.github.io/javamail/Android上搜索了很多信息(至少对我来说是这样):我们不应该再添加additionnal.jarmail.jaractivation.jar了。我们必须添加新的依赖项:

实现'com.sun.mail:android-mail:1.6.1‘实现’com.sun.mail:android-激活:1.6.1‘

但是,在我的app.gradle中添加了这些行之后,并且没有编写一行代码,我再次得到了上面的错误。

有人知道这条信息意味着什么吗?该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-11 08:00:26

在从3 jars (additionnal.jarmail.jaractivation.jar)升级到com.sun.mail:android-mail:1.6.1com.sun.mail:android-activation:1.6.1之后,我遇到了与您完全相同的问题。我也在使用AndroidStudio3.1。

我的解决方案不是使用1.6.1,而是使用稍微老一点的版本1.6.0。错误消失了,应用程序重新构建并工作。

`implementation 'com.sun.mail:android-mail:1.6.0' implementation 'com.sun.mail:android-activation:1.6.0'`

一些细节

我在那做了点调查。问题似乎是com.sun.mail:android-activation:1.6.1依赖于javax.activation:activation:1.1,这两个包都包含com.sun.activation.registries.*类。它导致了构建失败。

相反,在com.sun.mail:android-activation:1.6.0中不存在依赖关系。

依赖图是通过运行gradlew :app:dependencies --configuration debugRuntimeClasspath生成的。

  • 使用1.6.0 debugRuntimeClasspath - Resolved configuration for runtime for variant: debug +--- com.sun.mail:android-mail:1.6.1 | +--- com.sun.mail:android-activation:1.6.1 | | \--- javax.activation:activation:1.1 | \--- javax.activation:activation:1.1 +--- com.sun.mail:android-activation:1.6.1 (*) +---
  • 使用1.6.0 debugRuntimeClasspath - Resolved configuration for runtime for variant: debug +--- com.sun.mail:android-mail:1.6.0 | \--- com.sun.mail:android-activation:1.6.0 +--- com.sun.mail:android-activation:1.6.0

您也可以在下面的屏幕截图中看到它。

使用版本1.6.1时的Android屏幕快照

不过,我想向他们的开发人员发布一个bug报告。他们的旧问题跟踪器页面(https://github.com/javaee/javamail/issues)已经关闭,他们在Eclipse (https://projects.eclipse.org/projects/ee4j.javamail)上的新项目页面非常慢,我几乎无法打开它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49575982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档