Android --使用Github Actions和Gradle更改 local.properties--可空值问题

im9ewurl  于 2023-10-19  发布在  Android
关注(0)|答案(1)|浏览(101)

我一直在尝试local.properties通过Github操作替换www.example.com值。网上有很多教程,但我似乎每次都得到同样的错误。
我跟着这个:通过local.propertiesGit Hub secret在build.gradle android中传递www.example.com
问题是我得到以下错误:
指定为非空的参数为空:方法com.android.build.gradle.internal. config. BuildType.buildConfigField,参数值
我试图用一个elvis操作员来解决这个问题,比如:

buildTypes {

    def propFile=rootProject.file("./local.properties")
    def properties = new Properties()
    properties.load(new FileInputStream(propFile))

    def username = properties['MOCK_USERNAME']
    def password = properties['MOCK_PASSWORD']

    release {
        buildConfigField 'String', "USERNAME", username ?: "\"foo\""
        buildConfigField 'String', "PASSWORD", password ?: "\"foo\""

        resValue('string', "mock_username", username ?: "\"foo\"")
        resValue('string', "mock_password", password ?: "\"foo\"")

这会成功,但值总是foo,而不是被actions yaml脚本替换:

on:
  push:

jobs:
  unit_tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8
      - name: Make gradlew executable
        run: chmod +x ./gradlew
      - name: Update Username from Secrets
        env:
          MOCK_USERNAME: ${{ secrets.USER }}
        run: echo MOCK_USERNAME="$MOCK_USERNAME" > ./local.properties
      - name: Update Password from Secrets
        env:
          MOCK_PASSWORD: ${{ secrets.PASSWORD }}
        run: echo MOCK_PASSWORD="$MOCK_PASSWORD" > ./local.properties

      - name: Assemble app debug APK
        run: bash ./gradlew assembleDebug --stacktrace

      - name: Unit tests
        run: ./gradlew test

在我看过的所有教程中,没有人必须使用elvis运算符或得到nullable错误。我不知道为什么会发生这种情况。项目本身是多模块的(一个SDK和一个示例应用程序),所以我想知道它是否没有正确引用本地属性?
任何帮助在这里将不胜感激。

bmp9r5qi

bmp9r5qi1#

而不是低于这条线

run: echo MOCK_USERNAME="$MOCK_USERNAME" > ./local.properties

使用下线

run: echo 'MOCK_USERNAME=${{ secrets.USER }}' > ./local.properties

将此模式应用于其他秘密。

相关问题