我想在链接点击时打开一个活动(显示带有应用程序名称的操作选择器)。一切正常,我的应用程序会显示动作选择器,但只有当我不在manifestPlaceholder中使用属性名称时,默认浏览器才会打开(没有任何错误)。
我在gradle.properties文件中有以下几行:
HOST_NAME_DEV="dev.mysite.com"
HOST_NAME_PROD="mysite.com"我想创建一个这样的manifestPlaceholder:
// 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"但我想使用manifestPlaceholders。
我做错了什么?
发布于 2019-07-12 22:05:16
问题:在清单中使用“(双引号)注入数据。
解决方案:从gradle.properties的值中删除“(双引号)。就像这样:
HOST_NAME_DEV=dev.mysite.com
HOST_NAME_PROD=mysite.comhttps://stackoverflow.com/questions/56041697
复制相似问题