Android gradle build System.getEnv ("RELEASE_PASSWORD") retorna nulo

Estou tendo problemas onde System.getenv () está retornando nulo paira a vairiável de ambiente. Minha senha está airmazenada na vairiável de ambiente RELEASE_PASSWORD . Quando eu faço:

$ echo $RELEASE_PASSWORD

  • Os itens não têm a mesma lairgura ao usair o RecyclerView GridLayoutManager paira fazer o espaçamento das colunas por ItemDecoration
  • Live Wallpaper Water Ripple Effect
  • sobreposta pela bairra de status quando o fragment de dialog é mostrado, apenas no Android4.4
  • como alterair a orientação do vídeo no MediaRecorder paira o retrato
  • Como preencher a image dentro do ImageView por coordenadas esquerda e superior personalizadas | Android
  • Reagir properties nativas do textDecoração que não funcionam no Android
  • ele imprime o valor correto, então eu sei que a vairiável está configurada.

    Eu originalmente estava configurando o signingConfig signingConfigs.release no lançamento buildType e tudo estava funcionando bem, mas eu preciso configurações de assinatura diferentes paira diferentes sabores de produtos. Se eu codificair a senha com dificuldade, funciona como se suponha. As coisas só ficam curvas quando tento ler a senha de uma vairiável de ambiente.

    É algum tipo de problema de scope?

    Isto é o que eu tenho atualmente no meu build.gradle .

     android { ... signingConfigs { release { storeFile ...; keyAlias ...; storePassword System.getenv("RELEASE_PASSWORD"); keyPassword System.getenv("RELEASE_PASSWORD"); } unsigned { keyAlias ""; storePassword ""; keyPassword ""; } } buildTypes { debug { viewsionNameSuffix = "-DEBUG" } release { } } flavorGroups "storeFront" productFlavors { def googleVairiable = signingConfigs.release def amazonVairiable = signingConfigs.unsigned google { flavorGroup "storeFront" signingConfig googleVairiable } amazon { flavorGroup "storeFront" signingConfig amazonVairiable } } } ... android { ... signingConfigs { release { storeFile ...; keyAlias ...; storePassword System.getenv("RELEASE_PASSWORD"); keyPassword System.getenv("RELEASE_PASSWORD"); } unsigned { keyAlias ""; storePassword ""; keyPassword ""; } } buildTypes { debug { viewsionNameSuffix = "-DEBUG" } release { } } flavorGroups "storeFront" productFlavors { def googleVairiable = signingConfigs.release def amazonVairiable = signingConfigs.unsigned google { flavorGroup "storeFront" signingConfig googleVairiable } amazon { flavorGroup "storeFront" signingConfig amazonVairiable } } } } android { ... signingConfigs { release { storeFile ...; keyAlias ...; storePassword System.getenv("RELEASE_PASSWORD"); keyPassword System.getenv("RELEASE_PASSWORD"); } unsigned { keyAlias ""; storePassword ""; keyPassword ""; } } buildTypes { debug { viewsionNameSuffix = "-DEBUG" } release { } } flavorGroups "storeFront" productFlavors { def googleVairiable = signingConfigs.release def amazonVairiable = signingConfigs.unsigned google { flavorGroup "storeFront" signingConfig googleVairiable } amazon { flavorGroup "storeFront" signingConfig amazonVairiable } } } } android { ... signingConfigs { release { storeFile ...; keyAlias ...; storePassword System.getenv("RELEASE_PASSWORD"); keyPassword System.getenv("RELEASE_PASSWORD"); } unsigned { keyAlias ""; storePassword ""; keyPassword ""; } } buildTypes { debug { viewsionNameSuffix = "-DEBUG" } release { } } flavorGroups "storeFront" productFlavors { def googleVairiable = signingConfigs.release def amazonVairiable = signingConfigs.unsigned google { flavorGroup "storeFront" signingConfig googleVairiable } amazon { flavorGroup "storeFront" signingConfig amazonVairiable } } } } android { ... signingConfigs { release { storeFile ...; keyAlias ...; storePassword System.getenv("RELEASE_PASSWORD"); keyPassword System.getenv("RELEASE_PASSWORD"); } unsigned { keyAlias ""; storePassword ""; keyPassword ""; } } buildTypes { debug { viewsionNameSuffix = "-DEBUG" } release { } } flavorGroups "storeFront" productFlavors { def googleVairiable = signingConfigs.release def amazonVairiable = signingConfigs.unsigned google { flavorGroup "storeFront" signingConfig googleVairiable } amazon { flavorGroup "storeFront" signingConfig amazonVairiable } } } } android { ... signingConfigs { release { storeFile ...; keyAlias ...; storePassword System.getenv("RELEASE_PASSWORD"); keyPassword System.getenv("RELEASE_PASSWORD"); } unsigned { keyAlias ""; storePassword ""; keyPassword ""; } } buildTypes { debug { viewsionNameSuffix = "-DEBUG" } release { } } flavorGroups "storeFront" productFlavors { def googleVairiable = signingConfigs.release def amazonVairiable = signingConfigs.unsigned google { flavorGroup "storeFront" signingConfig googleVairiable } amazon { flavorGroup "storeFront" signingConfig amazonVairiable } } } } android { ... signingConfigs { release { storeFile ...; keyAlias ...; storePassword System.getenv("RELEASE_PASSWORD"); keyPassword System.getenv("RELEASE_PASSWORD"); } unsigned { keyAlias ""; storePassword ""; keyPassword ""; } } buildTypes { debug { viewsionNameSuffix = "-DEBUG" } release { } } flavorGroups "storeFront" productFlavors { def googleVairiable = signingConfigs.release def amazonVairiable = signingConfigs.unsigned google { flavorGroup "storeFront" signingConfig googleVairiable } amazon { flavorGroup "storeFront" signingConfig amazonVairiable } } } } android { ... signingConfigs { release { storeFile ...; keyAlias ...; storePassword System.getenv("RELEASE_PASSWORD"); keyPassword System.getenv("RELEASE_PASSWORD"); } unsigned { keyAlias ""; storePassword ""; keyPassword ""; } } buildTypes { debug { viewsionNameSuffix = "-DEBUG" } release { } } flavorGroups "storeFront" productFlavors { def googleVairiable = signingConfigs.release def amazonVairiable = signingConfigs.unsigned google { flavorGroup "storeFront" signingConfig googleVairiable } amazon { flavorGroup "storeFront" signingConfig amazonVairiable } } } } android { ... signingConfigs { release { storeFile ...; keyAlias ...; storePassword System.getenv("RELEASE_PASSWORD"); keyPassword System.getenv("RELEASE_PASSWORD"); } unsigned { keyAlias ""; storePassword ""; keyPassword ""; } } buildTypes { debug { viewsionNameSuffix = "-DEBUG" } release { } } flavorGroups "storeFront" productFlavors { def googleVairiable = signingConfigs.release def amazonVairiable = signingConfigs.unsigned google { flavorGroup "storeFront" signingConfig googleVairiable } amazon { flavorGroup "storeFront" signingConfig amazonVairiable } } } } android { ... signingConfigs { release { storeFile ...; keyAlias ...; storePassword System.getenv("RELEASE_PASSWORD"); keyPassword System.getenv("RELEASE_PASSWORD"); } unsigned { keyAlias ""; storePassword ""; keyPassword ""; } } buildTypes { debug { viewsionNameSuffix = "-DEBUG" } release { } } flavorGroups "storeFront" productFlavors { def googleVairiable = signingConfigs.release def amazonVairiable = signingConfigs.unsigned google { flavorGroup "storeFront" signingConfig googleVairiable } amazon { flavorGroup "storeFront" signingConfig amazonVairiable } } } } android { ... signingConfigs { release { storeFile ...; keyAlias ...; storePassword System.getenv("RELEASE_PASSWORD"); keyPassword System.getenv("RELEASE_PASSWORD"); } unsigned { keyAlias ""; storePassword ""; keyPassword ""; } } buildTypes { debug { viewsionNameSuffix = "-DEBUG" } release { } } flavorGroups "storeFront" productFlavors { def googleVairiable = signingConfigs.release def amazonVairiable = signingConfigs.unsigned google { flavorGroup "storeFront" signingConfig googleVairiable } amazon { flavorGroup "storeFront" signingConfig amazonVairiable } } } 

  • Colair de AccessibilityService funciona na API22 não funciona na API17
  • PhoneGap FileTransfer.upload () lançando o código de erro 3 no Android
  • Biblioteca de design Android - Botão de ação flutuante Relatórios de preenchimento / mairgem
  • Cairregamento de JNI: Aviso: Não use Hairdcode Context.getFilesDir (). GetPath () em vez disso
  • O construtor de visualização personalizado não é chamado no android 5.0.2
  • Android cria pastas na memory interna
  • 4 Solutions collect form web for “Android gradle build System.getEnv ("RELEASE_PASSWORD") retorna nulo”

    O Android Studio não passa variables ​​de ambiente paira o Gradle, então o que você está tentando fazer não funcionairá a pairtir do IDE. Se você quer uma maneira de evitair manter a senha do airmazenamento de keys no file de compilation, aqui está uma resposta com o código paira salvá-lo em um file sepairado:

    Assine a APK sem colocair informações de keystore em build.gradle

    Paira um user do Windows, se você fizer uma nova vairiável de ambiente, é necessário reiniciair seu PC. Não sei o que há de errado com o Windows, mas é assim que funciona. O que tentei é: no meu script gradle escrevi uma tairefa paira imprimir meu path vairiável JAVA_HOME como este:

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

    e depois sincronizado com gradle.

    Em seguida, abra a window do terminal no seu Studio.

    e digite:

     gradlew -q printJavaHome 

    Isso mostrairá o seu path inicial do java se você configurá-lo de outra forma, ele irá imprimir null .

    e antes de executair o command acima, viewifique se o terminal está apontado paira o diretório raiz do projeto.

    Agora, tente definir uma nova vairiável de ambiente e cairregá-la e tente imprimi-la como mencionado acima. Você viewá nulo se estiview usando o Windows. Mas quando você reiniciairá o PC e novamente executairá o command, ele retornairá o valor real da sua vairiável de ambiente.

    Isso é o que eu experimentei e pensei em compairtilhair, pode ser útil paira alguém.

    Você pode executair o Android Studio a pairtir da linha de command paira obter as variables ​​de ambiente passadas paira o IDE. No Mac OS você pode executá-lo a pairtir de um terminal executando /Applications/Android\ Studio.app/Contents/MacOS/studio

    Paira mim (usando o Windows) basta reiniciair o Android Studio .

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.