问题描述
有一个生成 Javadoc 输出的任务,但问题是当我们实现 androidx.core.app.ActivityCompat 类时它会导致错误。但其他任务编译没有错误。
task generateJavadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
configurations.implementation.setCanBeResolved(true)
classpath += project.files(android.getbootclasspath().join(File.pathSeparator)) +
configurations.implementation
destinationDir = file("release/javadoc/")
failOnError false
}
tasks.withType(Javadoc) {
options.addStringOption('Xdoclint:none','-quiet')
options.addStringOption('encoding','UTF-8')
options.addStringOption('charSet','UTF-8')
options.memberLevel = JavadocmemberLevel.PRIVATE
options.windowTitle("API Documentation (${project.android.defaultConfig.versionName})")
}
错误是:
WifiManagerUtils.java:10: error: package androidx.core.app does not exist
import androidx.core.app.ActivityCompat;
感谢您的帮助
解决方法
我已经解决了这个问题。我认为问题是这个 gradle 任务无法正确获取依赖项。方法; classpath +=configuration.implementation 似乎无法获得某些库的依赖权限。
此方法以正确的方式获取第三方依赖项。
afterEvaluate {
generateJavadoc.classpath += files(android.libraryVariants.collect { variant ->
variant.getJavaCompileProvider().get().classpath.files
})}