You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android Studio 3.2 Canary在Windows编译APK失败求助

解决Windows环境下AndroidX编译时的DexArchiveBuilderException(NullPointerException)

我之前在Windows环境切换到Android Studio 3.2 Canary版本使用AndroidX时,也遇到过完全相同的编译异常——核心问题是Jetifier处理后的依赖缓存文件损坏,导致Zip读取时抛出NullPointerException: entry。以下是亲测有效的解决步骤:

核心解决步骤

  1. 关闭Android Studio:确保没有进程在占用Gradle缓存文件
  2. 清理Jetified依赖缓存:删除路径 C:\Users\rafael.chagas\.gradle\caches\transforms-1 下的所有内容,这个目录是Jetifier转换后依赖的缓存位置,损坏的jetified-play-services-basement-15.0.1.aar就在这里面
  3. 重新编译项目:打开Android Studio,依次执行 Build -> Clean Project,然后 Build -> Rebuild Project

额外排查点(如果上述步骤无效)

  • 检查gradle.properties中的配置是否准确,确保以下两行没有拼写错误:
    android.enableJetifier=true
    android.useAndroidX=true
    
  • 更新Android Studio到最新的Canary版本:早期3.2 Canary版本存在Jetifier的已知bug,更新后可能修复问题
  • 验证Gradle缓存目录的权限:右键点击.gradle目录,选择「属性」->「安全」,确保当前用户拥有读写权限,Windows的安全策略偶尔会阻止Gradle写入缓存文件

问题原因分析

这个异常的根源是:Jetifier在Windows环境下生成的转换后依赖包(比如jetified-play-services-basement-15.0.1.aar)出现了损坏,导致Dex编译器在读取Zip文件时找不到对应的entry,从而抛出NullPointerException。清理缓存后,Gradle会重新下载并生成完整的Jetified依赖,就能解决这个问题。

内容的提问来源于stack exchange,提问作者Rafael Chagas

火山引擎 最新活动