gradle版本System.getEnv(“ RELEASE_PASSWORD”)返回null

我遇到一个问题,其中System.getenv()为环境变量返回null。 我的密码存储在RELEASE_PASSWORD环境变量中。 当我做:

$ echo $RELEASE_PASSWORD

它打印出正确的值,所以我知道该变量已设置。

我最初在发布buildType中设置了signingConfig signingConfigs.release,并且一切正常,但是我需要针对不同产品口味的不同签名配置。 如果我对密码进行硬编码,则它的工作原理与假定的一样。 当我尝试从环境变量中读取密码时,事情只会变得不妙。

这是某种范围问题吗?

这就是我目前在build.gradle中所拥有的。

android {

  ...

  signingConfigs {
    release {
      storeFile ...;
      keyAlias ...;
      storePassword System.getenv("RELEASE_PASSWORD");
      keyPassword System.getenv("RELEASE_PASSWORD");
    }

    unsigned {
      keyAlias"";
      storePassword"";
      keyPassword"";
    }
  }

  buildTypes {
    debug {
      versionNameSuffix ="-DEBUG"
    }

    release {
    }
  }

  flavorGroups"storeFront"

  productFlavors {
    def googleVariable = signingConfigs.release
    def amazonVariable = signingConfigs.unsigned

    google {
        flavorGroup"storeFront"
        signingConfig googleVariable
    }

    amazon {
        flavorGroup"storeFront"
        signingConfig amazonVariable
    }
  }
}

对于Windows用户,如果要创建新的环境变量,则需要重新启动PC。我不知道Windows怎么了,但这就是它的工作方式。我尝试的是,在gradle脚本中,我编写了一个任务来打印我的JAVA_HOME变量路径,如下所示:

1
2
3

task printJavaHome{
     println System.getenv("JAVA_HOME")
}

然后与gradle同步。

然后在Studio中打开终端窗口。

并输入:

1

gradlew -q printJavaHome

如果您设置了它,它将显示您的Java主目录路径,否则它将显示null。

在执行上述命令之前,请确保将终端指向项目的根目录。

现在尝试设置一个新的环境变量并加载它,并尝试按照上述步骤打印它。如果您使用Windows,则会看到null。但是,当您重新启动PC并再次执行命令时,它将返回您环境变量的实际值。

这就是我经历并想到的共享,可能对某人有用。

转自:Android gradle版本System.getEnv(“ RELEASE_PASSWORD”)返回null | 码农家园

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值