Android Studio Gradle 使用变量

标签 android gradle android-gradle-plugin

更新我的应用程序时,我想将版本代码和版本名称存储在一个地方,因为 Gradle 需要它并且在应用程序中可见。

Gradle 的一部分:

defaultConfig {
    applicationId "my.awesome.app"
    minSdkVersion 19
    targetSdkVersion 23
    versionCode 8
    versionName "1.8.0"
}

部分strings.xml:

<string name="app_name">My Awesome App</string>
<string name="app_version_code">8</string>
<string name="app_version_name">v.1</string>
<string name="foo_version">8</string>
<string name="bar_version">.0</string>
<string name="version">Version</string>

我已经在 Manifest.xml 中使用了 strings.xml:

android:versionCode="@string/app_version_code"
android:versionName="@string/app_version_name">

将这些数据放在两个地方对我来说似乎很愚蠢。如何将 strings.xml 中的值导入 gradle?

最佳答案

首先,如果在中指定了android:versionCodeandroid:versionName,则无需在AndroidManifest.xml中指定它们>build.gradle(你做对了吗?)。

其次,框架会为您生成一个BuildConfig.java 类,其中包含您在本题范围内所需的所有信息。我假设您出于某种原因需要引用这些值:

enter image description here

因此,您可以引用例如通过您的代码从任何地方获取版本代码

BuildConfig.VERSION_CODE;

关于Android Studio Gradle 使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42534089/

相关文章:

android - 如何在不再次运行 JSON 的情况下调用 android fragment ?

android - 如何从 android 中的 AES 加密字符串中删除 PKCS7 填充?

java - Android Studio 不会在 "Run"上构建 Java 项目;需要手动构建

java - 找不到com.intellij.lang.properties.charset.Native2AsciiCharsetProvider

android - 从 Eclipse 迁移...错误 :(1, 0) 找不到 ID 为 'com.android.application' 的插件

android - uploadArchives 构建调试和发布

android - 能够根据版本动态解析模块依赖关系

android - "Cannot resolve method ... "意外插入应用索引后

java - 跟踪在 Android 中某个位置花费的时间

java - 如何在每个gradle构建期间运行SonarQube分析?