我正在修改当前的android项目,因此它可以安装在同一设备上,用于多种口味并构建配置。
的build.gradle:
=Choose(RowNumber(Nothing),"#ffff33","#aaaa66", "#333399")
的AndroidManifest.xml :
{
// ...
defaultConfig {
applicationId "com.myapp"
manifestPlaceholders = [
manifestApplicationId: "${applicationId}",
onesignal_app_id: "xxxx",
onesignal_google_project_number: "xxxx"
]
// ...
}
productFlavors {
production {
applicationId "com.myapp"
// ...
}
dev {
applicationId "com.myapp.dev"
// ...
}
// ...
}
buildTypes {
release {
// ...
}
debug {
applicationIdSuffix ".debug"
// ...
}
}
// ...
}
当我编译相同风格的调试版和发行版时,我收到错误消息:
...
INSTALL_FAILED_DUPLICATE_PERMISSION
烫发= com.myapp.permission.C2D_MESSAGE
PKG = com.myapp.dev
...
manifestApplicationId占位符来自OneSignal库上的AndroidManifest.xml,如https://documentation.onesignal.com/docs/android-sdk-setup
所示有人知道如何解决这个问题吗?谢谢。
答案 0 :(得分:12)
OneSignal要求将manifestPlaceholders
密钥manifestApplicationId
设置为您的applicationId
(您的包名称为AKA)。
这可以通过在buildTypes
中设置,如下所示。
buildTypes {
debug {
defaultConfig {
manifestPlaceholders = [manifestApplicationId : "${applicationId}",
onesignal_app_id : "11111111-1111-1111-1111-111111111111",
onesignal_google_project_number: "111111111"]
}
}
release {
defaultConfig {
manifestPlaceholders = [manifestApplicationId : "${applicationId}",
onesignal_app_id : "22222222-2222-2222-2222-222222222222",
onesignal_google_project_number: "222222222"]
}
}
}
更新:3.3.0及更新的OneSignal SDK不再需要manifestApplicationId
。