Paparazzi初始化失败求助:NullPointerException问题排查
Paparazzi初始化阶段触发NullPointerException问题排查
问题背景
我正在尝试将Paparazzi集成到Android项目中,已完成以下插件与依赖配置:
classpath("app.cash.paparazzi:paparazzi-gradle-plugin:1.3.4") id("app.cash.paparazzi") version "1.3.4" apply false add("testImplementation", "app.cash.paparazzi:paparazzi:$paparazziVersion") // 1.3.4
编写了针对Compose函数的测试用例:
class NewsContentPaparazziTest { @get:Rule val paparazzi = Paparazzi( deviceConfig = PIXEL_5, theme = "android:Theme.Material.Light.NoActionBar" ) @Test fun newsContentScreenshotTest() { paparazzi.snapshot { AppTheme { NewsContent( state = sampleNewsState(), dispatchIntent = {} ) } } } }
运行测试后触发NullPointerException,异常发生在Paparazzi初始化阶段,栈信息如下:
java.lang.NullPointerException at java.base/java.util.Objects.requireNonNull(Objects.java:209) at java.base/sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:216) at java.base/java.nio.file.Path.of(Path.java:147) at java.base/java.nio.file.Paths.get(Paths.java:69) at app.cash.paparazzi.EnvironmentKt.detectEnvironment(Environment.kt:87) at app.cash.paparazzi.Paparazzi.<init>(Paparazzi.kt:31) at com.example.news.ui.NewsContentPaparazziTest.<init>(NewsContentPaparazziTest.kt:14) ...(省略后续栈信息)
已尝试将Java版本从21降级到17(当前版本17.0.11,已通过测试代码验证),但问题未解决。
可能的原因与解决方向
- 环境变量缺失:从栈信息看,异常发生在Windows系统的路径解析阶段,大概率是Paparazzi需要的环境变量未正确设置。检查
ANDROID_HOME或ANDROID_SDK_ROOT是否配置,且指向有效的Android SDK目录。 - Gradle配置遗漏:确保已在模块级
build.gradle.kts中应用Paparazzi插件:plugins { id("app.cash.paparazzi") } - 版本兼容性问题:尝试升级Paparazzi到最新稳定版,或检查当前版本与Android Gradle Plugin(AGP)的兼容性。
- 测试运行配置干扰:避免IDE运行测试时的配置问题,尝试通过Gradle命令行运行测试(
./gradlew :module:paparazzi)。
内容的提问来源于stack exchange,提问作者Georgiy Chebotarev
相关产品推荐
相关产品推荐

