我一直在尝试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和一个示例应用程序),所以我想知道它是否没有正确引用本地属性?
任何帮助在这里将不胜感激。
1条答案
按热度按时间bmp9r5qi1#
而不是低于这条线
使用下线
将此模式应用于其他秘密。