我们有一个android库项目,该项目将由自动化系统构建以创建aar文件。
系统还会在aar文件中创建的最终清单中引入版本名称和代码。
现在,我想在清单中使用此版本名称/代码作为元数据,以便当应用程序使用此库时,它也包含此元数据。
这是我尝试过的:
build.gradle内容:
defaultConfig {
minSdkVersion 17
targetSdkVersion sdkVersion
def lib_version = myMethod()
manifestPlaceholders = [my_library_version:lib_version]
}
def myMethod() {
android.buildTypes {
buildTypes.each {
android.libraryVariants.all { variant ->
variant.outputs.each { output ->
def lib_version = output.processManifest.versionName
println "ho ho ho " + lib_version + " " + variant.name
return lib_version
}
}
}
}
}
AndroidManifest.xml内容:
<application >
<meta-data android:name="lib_version" android:value="${lib_version}" tools:replace="android:value"/>
</application>
并收到此错误:
:processBuildTypesManifest
FAILURE: Build failed with an exception.
* What went wrong:
java.lang.NullPointerException (no error message)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 12.778 secs
BUILD FAILED
有人可以指出我做错了什么吗? TIA