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

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容