Android自定义Javadoc任务报错“Path may not be null or empty string”排查
问题
将Android Gradle Plugin(AGP)从8.0.2升级到8.1.0后,运行自定义Javadoc任务时抛出错误:Cause: path may not be null or empty string. path = ''。
相关背景:
- 其他相关反馈提到该错误与查找签名密钥库文件、
gradle.properties中的RELEASE_STORE_FILE属性有关 - 我的
gradle.properties中并未配置RELEASE_STORE_FILE属性(原本就不打算使用它)
疑问:
- 密钥库文件对Debug构建是否也必需?
- 为何仅在AGP升级到8.1.0后出现此问题?
自定义Javadoc任务配置(build.gradle中):
dependsOn "generateReleaseRFile" dependsOn "compileReleaseKotlin" failOnError true configurations.implementation.setCanBeResolved(true) source = android.sourceSets.main.java.sourceFiles classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) classpath += configurations.implementation
解答
Debug构建不需要密钥库文件:Debug构建默认使用Android SDK自带的调试密钥库,完全不需要开发者手动配置
RELEASE_STORE_FILE这类签名属性就能正常完成构建。你遇到的错误不是Debug构建本身的问题,而是自定义Javadoc任务触发了Release变体的签名检查逻辑。AGP 8.1.0的行为变更导致问题:AGP 8.1.0对构建任务的依赖关系、签名配置的检查逻辑做了调整。你的自定义Javadoc任务依赖了
generateReleaseRFile和compileReleaseKotlin这两个Release变体的任务,升级后AGP会强制校验Release变体的签名配置——哪怕你没打算给Release构建签名,只要触发了Release相关任务,它就会去检查RELEASE_STORE_FILE等属性,而你没配置的话就会抛出空路径错误。
内容的提问来源于stack exchange,提问作者es97
相关产品推荐
相关产品推荐

