当前位置: 首页 > 知识库问答 >
问题:

是否可以声明一个在Java中可用的Gradle变量?

令狐唯
2023-03-14
android {
    debug {
        A_VAR_RETRIEVABLE_IN_JAVA = 42
    }
    release {
        A_VAR_RETRIEVABLE_IN_JAVA = 42+52
    }
}

有办法做那样的事吗?

共有1个答案

屈升
2023-03-14

这里有两种方法将值从Gradle传递到Java中使用;

android {
    buildTypes {
        debug {
            buildConfigField "int", "FOO", "42"
            buildConfigField "String", "FOO_STRING", "\"foo\""
            buildConfigField "boolean", "LOG", "true"
        }

        release {
            buildConfigField "int", "FOO", "52"
            buildConfigField "String", "FOO_STRING", "\"bar\""
            buildConfigField "boolean", "LOG", "false"
        }
    }
}

您可以使用buildconfig.foo访问它们

android {
    buildTypes {
        debug{
            resValue "string", "app_name", "My App Name Debug"
        }
        release {
            resValue "string", "app_name", "My App Name"
        }
    }
}

您可以使用@string/app_namer.string.app_name以通常的方式访问它们

 类似资料:
  • 问题内容: 是否可以在Gradle中声明一个可在Java中使用的变量?基本上,我想在build.gradle中声明一些var,然后在构建时(显然)获取它。就像C / C ++中的预处理器宏一样… 一个声明的例子就是这样: 有没有办法做这样的事情? 问题答案: 生成Java常量 你可以使用 产生Android资源 你可以使用或以通常的方式访问它们

  • 问题内容: 是否可以在String方法中使用默认参数。代码如下所示: 上面的代码生成错误。有可能纠正吗? 问题答案: 不,您通常这样做的方法是重载这样的方法:

  • 问题内容: 假设我们定义这个Book类,以确保不能向isbn分配空值: 这样可以防止创建isbn为null的Book对象,但是在创建具有非null isbn的book对象之后,我们可以通过反射修改值并将其设置为null。 无论如何(使用技巧或Java功能)是否可以防止Book实例存在于isbn为null的内存中? 注意:这个问题与s 无关。 问题答案: 技术上,引用是可以为空的。即使您可以用来确保

  • 问题内容: 是否可以使用Golang一次声明多个变量? 例如,在Python中,您可以输入以下内容: 所有值均为80。 问题答案: 是的你可以: 您可以对内联分配执行类似的操作,但不太方便:

  • 问题内容: 给定两个值x和y,我想将它们传递给另一个函数,交换它们的值并查看结果。这在Java中可行吗? 问题答案: 不与原始类型(,,等)。Java按值传递东西,这意味着函数传递的变量是原始变量的副本,并且您对该副本所做的任何更改都不会影响原始变量。 现在,对象有所不同,因为对象变量的“值”实际上是对对象的引用-复制该引用使其指向完全相同的对象。 局限性在于,您仍然无法以调用者可以看到的任何方式

  • 以下是我目前掌握的情况: 其中,我有一行,它应该取索引处的数组的值,并将其转换为长度为5的数组。因此,如果,它应该创建一个长度为5的数组。但是,它会抛出一个非法的表达式开始错误。 我也尝试使用临时变量来帮助声明多个数组,但是我得到了更多的错误以及表达式的非法开始。 有没有什么方法可以在不使用多维数组的情况下解决这个问题呢? 提前道谢。