一稿械、工具版本: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":
截圖如下:
三倍踪、問題原因:我出現(xiàn)這個問題的原因來自于系宫,使用了 smack 模塊索昂,而其中包含的 “xpp3” 模塊可能和 Android 提供的內(nèi)部版本沖突,需要在 dependencies 中去除笙瑟。
四楼镐、解決方式:
在 app 層的 build.gradle 中的 dependencies (即添加相關(guān)依賴的地方)中加入:
configurations { all*.exclude group: 'xpp3', module: 'xpp3' }
五、發(fā)現(xiàn)哪個依賴可能出現(xiàn)問題的步驟
將 gradle 版本從 3.0 修改回 2.3.3往枷。即:在頂層的 build.gradle 中 gradle 相關(guān)修改為如下:
dependencies { classpath 'com.android.tools.build:gradle:2.3.3' }
點(diǎn)擊“Sync Now”后框产,就會出現(xiàn) WARNING 如下圖:
這就是錯誤來源。不知道為什么 gradle 3.0 不報這個問題错洁。
找到來源后秉宿,就可以把 gradle 版本從 2.3.3 改為原來的 3.0 了。
然后按上面步驟加入相關(guān)代碼即可屯碴。
解決問題的答案主要來自以下鏈接:
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