現象:代碼未修改,僅重啟模擬器/清理構建後,報錯:UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: already added: Lorg/codehaus/jackson/Base64Variant;。
jackson-core。some-lib)也傳遞依賴 jackson-core(可能版本不同)。org.codehaus.jackson.Base64Variant),拋出 already added。# Linux/Mac:查找所有包含 jackson 的 jar
find . -name "*.jar" -exec sh -c 'jar tf {} | grep -q jackson && echo {}' \;
# 或針對具體庫
jar tvf libs/some-lib.jar | grep jackson
build.gradle 強制指定版本:
configurations.all {
resolutionStrategy {
force 'com.fasterxml.jackson.core:jackson-core:2.15.2'
force 'com.fasterxml.jackson.core:jackson-databind:2.15.2'
}
}
implementation ('com.thirdparty:some-lib:1.0') {
exclude group: 'com.fasterxml.jackson.core', module: 'jackson-core'
}
com.myapp.shaded.jackson。./gradlew dependencies 檢查依賴樹衝突。implementation 而非 api 隔離傳遞依賴。依賴衝突是構建失敗高發區,善用解析策略與排除規則,保持 Dex 純淨。