Che*_*rra 23 android javadoc android-gradle-plugin
我正在尝试建立一个在jcenter上发布的aar.
assembleRelease任务正常,javadoc任务也可正常工作,但javadocJar任务输出此错误:
/Users/martinmoreno/Projects/android-dev-utils/dev-utils/src/main/java/com/tinchoapps/devutils/BitmapUtils.java:11:错误:包android.support.annotation不存在
import android.support .annotation.NonNull;
这是(简化的)gradle文件:
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
android {
...
buildTypes {
release {
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
}
...
}
...
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:support-annotations:20.0.0'
compile 'com.android.support:support-v4:22.0.0'
}
task sourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
destinationDir = file("../javadoc/")
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives sourcesJar
archives javadocJar
}
Run Code Online (Sandbox Code Playgroud)
它似乎与依赖关系有关,因为它在导入的类中也提供了一些"类未找到"异常,但无法弄清楚出错了什么.
有什么想法吗?
Mar*_*eth 18
这为我修复了各种类似的错误:
将以下内容添加到build.gradle:
configurations {
javadocDeps
}
dependencies {
compile 'com.android.support:support-annotations:22.2.0'
javadocDeps 'com.android.support:support-annotations:22.2.0'
androidTestCompile 'junit:junit:4.+'
androidTestCompile 'com.jayway.android.robotium:robotium-solo:+'
}
Run Code Online (Sandbox Code Playgroud)
在JavaDoc任务中添加以下行:
classpath += configurations.javadocDeps
Run Code Online (Sandbox Code Playgroud)
只需在javadoc任务中添加此行(注意最后一部分:) + configurations.compile:
classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + configurations.compile
Run Code Online (Sandbox Code Playgroud)
该行的最后一部分确保javadoc使用编译依赖项来解析它用于javadoc的类.此时,它不应该再失败了.
由于Android Gradle 3.0.0中引入了apiand implementation依赖配置,因此已弃用。为了在javadoc类路径中包含依赖项,我更新了Loius CAD答案:compileimplementation
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
configurations.implementation.setCanBeResolved(true)
classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) + configurations.implementation
}
Run Code Online (Sandbox Code Playgroud)
我不希望这是最干净的解决方案。configuration.implementation默认情况下无法解决可能是有原因的。
| 归档时间: |
|
| 查看次数: |
8114 次 |
| 最近记录: |