java - 如何在运行时确定retrofit的版本?

标签 java android retrofit

是否可以在运行时检索改造的版本?我想在调试屏幕中显示此信息。

最佳答案

免责声明:此答案假设您使用 Gradle 来构建 Android 项目。另外,我不是 Gradle 专家,因此这种方法可能存在我不知道的缺点。

虽然没有明显的方法在代码中执行此操作,但您可以使用 Gradle 在 BuildConfig 中创建一个简单的字段。考虑以下因素:

/**
 * Adds a public static String field to BuildConfig containing
 * the Retrofit version, no matter what build type is used.
 */
task createRetrofitBuildConfigField << {
    project.configurations.compile.each {
        if (it.name.contains("retrofit")) {
            android.buildTypes.each { flavor ->
                def version = it.name.replaceFirst(~/\.[^\.]+$/, "") // Removes extension.
                flavor.buildConfigField("String", "RETROFIT_VERSION", "\"${version}\"")
            }
        }
    }
}

preBuild.dependsOn createRetrofitBuildConfigField

当您重建项目时,一个静态字段会添加到 BuildConfig 中,可以在代码中轻松访问:

public static final String RETROFIT_VERSION = "retrofit-2.0.0-beta2";

您可能希望将上述代码添加到声明 Retrofit 依赖项的 build.gradle 中。

关于java - 如何在运行时确定retrofit的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33569852/

相关文章:

java - JSON 到 GSON 和 POJO 类

java - 通过 Service 更新 Android 中的新 RSS 提要

android - 运行时错误不幸的是应用程序已停止?

java - 为什么我的 TextView 在每个列表项中的位置不同?

android - 如何使用 Retrofit 添加多个相同/数组参数?

java - android 改造将数组发送为 x-www-form-urlencoded

JavaFX:加载数据任务与进度条结合

java - 为什么 HBase 中的 Bytes.toBytes() 无法返回我在我的情况下搜索的最后一行?

java - 使用 Java 将 Excel (.xlsx) 转换为 PDF

android - 谁能知道如何在 android 中将图像数组发布到服务器?