如何在运行时从模块代码内部获取库模块的版本

How to get the library module's version from inside the module's code at runtime

有一个Android库模块,其版本定义在build.gradle

group = 'com.sample.data'
version = 1.0.1
project.ext.artifactId = 'data_module'

apply plugin: 'com.android.library'

在其代码中记录或报告崩溃时需要包含其自身的版本(1.0.1)。

使用

val pInfo = context.getPackageManager()
                  .getPackageInfo(dataConfiguration.context.getPackageName(), 0)
val version = pInfo.versionName

只获取托管应用程序的包信息,而不是库模块的

如何在运行时从模块代码内部获取库模块的版本?

一些post建议使用BuildConfig.VERSION_NAME,但在库模块的代码中无法解析(列表中没有库本身)

在 build.gradle 中添加相同的额外内容后

defaultConfig {

}

在代码中 BuildConfig.VERSION_NAME 已解决。

可以从BuildConfig.VERSION_NAME获取版本。