Gradle构建Android Javadoc失败,如何定位stacktrace提及的源码?
问题描述
尝试用Gradle为自制Android库构建Javadoc,参考旧Stack Overflow示例后失败。执行./gradlew javadoc时报错:
path may not be null or empty string. path=''
添加--stacktrace后得到异常栈信息,需解决两个问题:
- 如何找到栈中提及的Java源码文件以排查空路径问题;
- 如何查看Gradle任务中
android.sourceSets这类API的源码或官方文档。
解决方案
1. 定位栈信息中的源码文件排查空路径问题
- 分析异常栈关键帧
从--stacktrace输出里找到抛出path may not be null or empty string异常的类和方法,锁定是Android Gradle Plugin(AGP)内部类还是项目自定义代码导致的问题。 - 获取对应AGP的源码包
执行./gradlew dependencies查看当前项目使用的AGP版本,然后到本地Gradle缓存目录(通常为~/.gradle/caches/modules-2/files-2.1/com.android.tools.build/gradle/[你的AGP版本号]),找到带sources后缀的jar包,这就是AGP的源码文件。 - 导入源码到IDE定位问题
将源码包导入Android Studio,直接搜索栈帧里的类名和方法名,就能找到抛出空路径异常的代码位置,查看哪里传入了空值。同时留意栈帧中属于你项目的代码片段,排查是否在build.gradle配置sourceSets时不小心设置了空路径。
2. 查看android.sourceSets这类API的源码或文档
- IDE直接跳转查看
在Android Studio中,把光标移到sourceSets上,按下Ctrl+B(Windows/Linux)或Cmd+B(Mac),IDE会自动跳转到对应源码;如果未下载源码,会弹出提示,直接确认下载即可。 - 本地缓存查看源码
按照第一步的方法找到AGP的源码包,手动打开后,在com.android.build.gradle.api包下可找到AndroidSourceSet相关类,这就是sourceSetsAPI的实现类。 - 查看官方文档
在Android Studio的Help菜单中打开官方文档面板,搜索sourceSets即可看到Android Gradle插件对该API的详细说明,包含配置示例、参数解释等内容。
内容的提问来源于stack exchange,提问作者topher217
相关产品推荐
相关产品推荐

