Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将System.property从Gradle传递到Android应用程序?_Android_Gradle_Android Gradle Plugin - Fatal编程技术网

如何将System.property从Gradle传递到Android应用程序?

如何将System.property从Gradle传递到Android应用程序?,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,我希望能够从应用程序中获取系统属性,如下所示: String istest=System.getProperty(“正在测试”) 我尝试在gradle中使用-D标志传递参数,比如/gradlew assembly-DIS_TESTING。或这样做: task setCustomProp << { System.setProperty("IS_TESTING", "true") } preBuild.dependsOn setCustomProp 但是,所有这些尝试都无法获

我希望能够从应用程序中获取系统属性,如下所示:

String istest=System.getProperty(“正在测试”)

我尝试在gradle中使用-D标志传递参数,比如
/gradlew assembly-DIS_TESTING
。或这样做:

task setCustomProp << {
    System.setProperty("IS_TESTING", "true")
}

preBuild.dependsOn setCustomProp

但是,所有这些尝试都无法获得应用程序代码的值。我只是想变得像:

@覆盖
public void onCreate(){
super.onCreate();
String istest=System.getProperty(“IS_测试”);
}

为什么不添加:

buildConfigField "boolean", "IS_TESTING", "true" 
来建造格拉德尔

然后在你的

@Override
  public void onCreate() {
    super.onCreate();
    boolean isTesting = BuildConfig.IS_TESTING
}

“所有这些尝试都不会导致获取应用程序代码的值”——应用程序代码在Android中运行,而不是在您的开发机器上运行。除了创建自定义ROM,Android中没有可配置的系统属性。如果您想在开发机器上拥有系统属性,请将其嵌入Android应用程序中。让Gradle脚本使用
buildConfigField
将系统属性值放入
BuildConfig
,或者使用
resValue
将系统属性值放入字符串资源中。我之所以这样做,是因为我正在尝试更改此处的环境变量。React使用此
正在测试的
更改一些配置。您需要与React本机团队讨论这一点。我不知道他们为什么会有这样的代码。我可以想到两种场景,其中可以设置
正在测试
系统属性。一个是单元测试,因为它在JVM上运行,所以我假设我们在运行单元测试时有一种设置系统属性的方法。另一种情况是,如果Android Set
正在进行测试,可能是作为测试运行的一部分。无论如何,您无法直接为普通Android应用程序的最终用户运行设置它。我最终在插入指令的测试中更改了系统属性。这很好,但我恐怕无法使用
system.getProperty
,因为我的问题是其他库-事实上,使用react native,您可以查看
@Override
  public void onCreate() {
    super.onCreate();
    boolean isTesting = BuildConfig.IS_TESTING
}