Android manifestPlaceholder от gradle.properties - PullRequest
0 голосов
/ 08 мая 2019

Я хочу открыть действие по ссылке (показать действие выбора с именем приложения). Все работает нормально, средство выбора действий отображается с моим приложением, но только если я не использую имя свойства в manifestPlaceholder, иначе открывается браузер по умолчанию (без каких-либо ошибок).

У меня есть эти строки в файле gradle.properties:

HOST_NAME_DEV="dev.mysite.com"
HOST_NAME_PROD="mysite.com"

Я хочу создать манифестПлейсхолдер так:

// in manifest
<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
        <data
             android:host="${host}"
             android:scheme="https" />
</intent-filter>

//in build.gradle
productFlavors {
        production {
            manifestPlaceholders = [host: HOST_NAME_PROD]
        }
        develop {
            manifestPlaceholders = [host: HOST_NAME_DEV]
        }
}

И это не работает.

Но если я вставляю строку в manifestPlaceholder, все работает нормально:

productFlavors {
        production {
            manifestPlaceholders = [host: "mysite.com"]
        }
        develop {
            manifestPlaceholders = [host: "dev.mysite.com"]
        }
}

Таким образом, все тоже отлично работает:

productFlavors {
        production {
            resValue "string", "host", HOST_NAME_PROD
        }
        develop {
            resValue "string", "host", HOST_NAME_DEV
        }
    }

// and in manifest
android:host="@string/host"

Но я хочу использовать manifestPlaceholder.

Что я делаю не так?

1 Ответ

0 голосов
/ 12 июля 2019

Проблема: вставка данных с помощью "(двойных кавычек) в вашем манифесте.

Решение: удалите "(двойные кавычки) из ваших значений gradle.properties, что это. Просто так:

HOST_NAME_DEV=dev.mysite.com
HOST_NAME_PROD=mysite.com
...