Dokka生成文档缺失Activity/Fragment自定义成员及函数问题
解决DokkaHtml仅展示类定义、不显示自定义私有成员/函数的问题
你的核心问题是Dokka默认不会将private可见性的成员纳入文档生成范围——即便已经设置了includeNonPublic.set(true),这个参数只是允许Dokka处理非公开成员,但真正控制哪些可见性成员会出现在最终文档里的是documentedVisibilities配置。
修正后的配置
将你的dokkaHtml任务配置修改为如下:
tasks.dokkaHtml { moduleName.set("SMMS") moduleVersion.set("1.7.0.001") outputDirectory.set(file("$buildDir/docs/html")) failOnWarning.set(true) suppressInheritedMembers.set(true) sourceSets { configureEach { includeNonPublic.set(true) // 显式指定要包含的可见性范围,添加PRIVATE documentedVisibilities.set(setOf( org.jetbrains.dokka.base.DokkaBase.Visibility.PUBLIC, org.jetbrains.dokka.base.DokkaBase.Visibility.PROTECTED, org.jetbrains.dokka.base.DokkaBase.Visibility.INTERNAL, org.jetbrains.dokka.base.DokkaBase.Visibility.PRIVATE )) skipDeprecated.set(false) reportUndocumented.set(true) skipEmptyPackages.set(false) noAndroidSdkLink.set(true) } } }
关键说明
documentedVisibilities的默认值是[PUBLIC, PROTECTED],不包含INTERNAL和PRIVATE,必须手动添加才能让私有成员出现在文档中。- 纯Kotlin项目可以省略全限定名,直接写
Visibility.PRIVATE;Android项目建议保留全限定名,避免与Android SDK中的同名类冲突。 - 确认你的私有成员带有完整的KDoc注释,因为
reportUndocumented.set(true)要求所有纳入文档的成员必须有注释,否则会触发构建警告(而你设置了failOnWarning.set(true),会导致构建失败)。
修改完成后,重新执行./gradlew dokkaHtml任务,生成的文档应该就能正常显示自定义的私有成员和函数了。
内容的提问来源于stack exchange,提问作者mcy
相关产品推荐
相关产品推荐

