Android 生成签名(release)APK 时报错 trouble processing "javax/xml/namespace/QName.class":

一、工具版本:Android Studio 3.1.4,gradle 3.0.0
二、问题描述:debug 时没有问题,但是在生成 release APK 时,报错:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithDexForRelease'.

trouble processing "javax/xml/namespace/QName.class":
截图如下:


错误内容

三、问题原因:我出现这个问题的原因来自于,使用了 smack 模块,而其中包含的 “xpp3” 模块可能和 Android 提供的内部版本冲突,需要在 dependencies 中去除。

四、解决方式:
在 app 层的 build.gradle 中的 dependencies (即添加相关依赖的地方)中加入:
configurations { all*.exclude group: 'xpp3', module: 'xpp3' }

五、发现哪个依赖可能出现问题的步骤
将 gradle 版本从 3.0 修改回 2.3.3。即:在顶层的 build.gradle 中 gradle 相关修改为如下:
dependencies { classpath 'com.android.tools.build:gradle:2.3.3' }
点击“Sync Now”后,就会出现 WARNING 如下图:

错误原因

这就是错误来源。不知道为什么 gradle 3.0 不报这个问题。
找到来源后,就可以把 gradle 版本从 2.3.3 改为原来的 3.0 了。
然后按上面步骤加入相关代码即可。

解决问题的答案主要来自以下链接:
https://stackoverflow.com/questions/10098088/dalvik-vm-error-exception-found-javax-xml-namespace-qname-class
https://stackoverflow.com/questions/48488563/gradle-xpp3-error?rq=1

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容