构建APK或模拟器应用时遇异常错误,恳请协助排查解决
解决Android构建APK/模拟器时的异常问题
我完全理解你临近发布却被构建异常卡主的焦虑,结合你给出的Build.gradle片段和遇到的问题,我整理了几个针对性的排查和解决步骤:
1. 先执行基础的清理重建操作
很多构建异常是缓存或临时文件导致的,先彻底清理项目再重新构建:
./gradlew clean ./gradlew assembleDebug --stacktrace
执行完后重点看--stacktrace输出里最底部的Caused by部分,这通常是错误的根源——比如依赖冲突、类重复、缺失依赖这类具体提示。
2. 检查jsr305依赖的强制配置
你在gradle里强制指定了com.google.code.findbugs:jsr305:1.3.9,这个版本比较老旧,很可能和其他依赖库引入的新版本jsr305产生冲突。可以尝试两个方向:
- 先注释掉这个强制配置,看看是否能正常构建:
// configurations.all { // resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.3.9' // } - 如果必须保留强制规则,尝试升级到更兼容的版本,比如1.4.0:
configurations.all { resolutionStrategy.force 'com.google.code.findbugs:jsr305:1.4.0' }
3. 确认Build.gradle完整配置的兼容性
你提供的配置里defaultCon...没写完,建议检查以下几点:
defaultConfig里的targetSdkVersion是否和compileSdkVersion 27一致,最好设置为27;- 所有支持库(比如appcompat、design等)的版本是否为27.x.x,比如
implementation 'com.android.support:appcompat-v7:27.1.1',版本不匹配会直接导致构建失败; - 第三方依赖库是否存在不兼容Android 27的情况,比如某些库已停止对低版本SDK的支持,需要找对应兼容的旧版本。
4. 排查依赖冲突
如果stacktrace里提示重复类或依赖冲突,可以用以下命令查看完整依赖树,找出冲突的依赖:
./gradlew app:dependencies
找到冲突的库后,在对应的依赖项里用exclude排除重复部分,比如:
implementation('xxx:xxx:1.0.0') { exclude group: 'com.google.code.findbugs', module: 'jsr305' }
如果执行完这些步骤还是有问题,建议把--stacktrace里的关键错误信息贴出来,这样能更精准定位问题。
内容的提问来源于stack exchange,提问作者Srinivas Nahak
相关产品推荐
相关产品推荐

