我遇到了一个问题,System.getenv()为环境变量返回null。我的密码存储在RELEASE_PASSWORD环境变量中。当我这样做时:
回声RELEASE_PASSWORD
它打印出正确的值,所以我知道变量已设置。
我最初在发布构建类型中设置了signingConfigsigningConfigs.release
,一切都很好,但是我需要不同的签名配置来适应不同的产品风格。如果我硬编码密码,它的工作方式就像它应该的那样。当我尝试从环境变量中读取密码时,事情只会变得不稳定。
这是某种范围问题吗?
这是我目前在<code>build.gradle</code>中拥有的。
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
}
}
}
Android Studio不会将环境变量传递给Gradle,因此您试图做的事情在IDE中无法工作。如果您想避免将密钥库密码保存在构建文件中,这里有一个答案,它带有将密码保存在单独文件中的代码:
在不将密钥库信息放入build.gradle的情况下签署APK
对于 Windows 用户,如果创建新的环境变量,则需要重新启动电脑。我不知道Windows有什么问题,但这就是它的工作原理。我尝试的是,在我的gradle脚本中,我写了一个任务来打印我的JAVA_HOME
变量路径,如下所示:
task printJavaHome{
println System.getenv("JAVA_HOME")
}
然后与 gradle 同步。
然后打开工作室中的终端窗口。
和类型:
gradlew -q printJavaHome
这将显示您的java主路径,如果您设置它,否则它将打印< code>null。
在执行上述命令之前,请确保终端指向项目的根目录。
现在,尝试设置一个新的环境变量并加载它,并尝试按照上面提到的步骤打印它。如果您使用的是Windows,您会看到null。但是当你重启PC并再次执行命令时,它会返回你的环境变量的实际值。
这是我的经历和想法分享,可能对某人有用。
您可以从命令行运行Android Studio以将环境变量传递到IDE中。在Mac OS中,您可以通过运行/Application/Android\Studio.app/Contents/MacOS/studio
从终端运行它
问题内容: 例如我有一个功能: 我怎样才能返回AJAX后得到的? 问题答案: 因为请求是异步的,所以您无法返回ajax请求的结果(而同步ajax请求是一个 糟糕的 主意)。 最好的选择是将自己的回调传递给f1 然后,您将像这样致电:
我有两个活动和两个布局。当我在第一个活动中显示列表时,一切都正常,并在单击时给出列表中项目的编号,但当我尝试在第二个活动中重复相同的内容时,它会告诉我RecycleServiceClickListener侦听器为空。 适配器: 第一项活动: 第二项活动: 错误: 我不明白为什么在第一种情况下,它正常处理单击,而在第二种情况下,它说RecyclerViewClickListener为null
问题内容: 我在使用Ajax时遇到问题。 问题是,在获得ajax响应之前,它会返回cnt。因此它总是返回NULL。 有没有办法使正确的返回响应值? 谢谢! 问题答案: 由于AJAX请求是异步的,因此您的cnt变量将在请求返回并调用成功处理程序之前返回。 我建议重构您的代码以解决此问题。 一种方法是从AJAX请求的成功处理程序中调用调用了GetGrantAmazonItemCnt()的任何函数,此方
我想在下面返回JSON。 {“名字”:“杰基”} 新来的春靴在这里。1天大。有没有合适的方法可以做到这一点?
加载样式表,并在用户单击按钮时将其应用于场景 调用getScene()返回null。 函数所在的类是场景的控制器和根节点,我使用SceneBuilder 2.0,并将类设置为加载fxml的控制器,它是一个。 问题代码是类中的一个成员函数,标记是这样的,我可以通过设置按钮来调用它。 完整的代码可以在https://github.com/SebastianTroy/FactorioManufactur
问题内容: 我创建了一个自定义错误类型来包装错误,以便更轻松地在Golang中进行调试。当有打印错误时它可以工作,但是现在引起了恐慌。 演示版 当我调用一个函数时,它不会返回错误,我仍然应该能够包装该错误。 预期的行为是,如果错误为nil,则应该简单地忽略它,不幸的是,它会做相反的事情。 我希望它能打印出来。而是即使错误为nil也会打印。 问题答案: 正在将err变量与nil进行比较,但实际上它是