android studio(gradle)根据构建变量为字符串资源分配不同的值

android studio(gradle)根据构建变量为字符串资源分配不同的值,android,android-gradle-plugin,google-play-services,Android,Android Gradle Plugin,Google Play Services,我有一款游戏,它有4种不同的风格(DemoARM、DemoX86、FullARM、FullX86)和标准的两种变体(debug/release) 该游戏使用Google Play登录和实时多人游戏服务 在Google Play开发者控制台中,我有3个应用程序链接到游戏;调试、演示发布和完全发布。调试应用程序使用调试证书签名,因此需要不同的OAUTH应用程序ID 我最初想通过使用gradle将资源(不适用于硬编码的值)注入清单来解决这个问题。。。所以我的清单是这样的 <met

我有一款游戏,它有4种不同的风格(DemoARM、DemoX86、FullARM、FullX86)和标准的两种变体(debug/release)

该游戏使用Google Play登录和实时多人游戏服务

在Google Play开发者控制台中,我有3个应用程序链接到游戏;调试、演示发布和完全发布。调试应用程序使用调试证书签名,因此需要不同的OAUTH应用程序ID

我最初想通过使用gradle将资源(不适用于硬编码的值)注入清单来解决这个问题。。。所以我的清单是这样的

        <meta-data
        android:name="com.google.android.gms.games.APP_ID"
        android:value="${gmsID}" />
        <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    defaultConfig {
    applicationId "xxx"
    manifestPlaceholders = [ gmsID:"@string/google_app_id_debug"]
    minSdkVersion 17
    targetSdkVersion 17
    versionCode 1
    versionName 'Alpha 1'
}
buildTypes {
    release {
        minifyEnabled false
        manifestPlaceholders = [ gmsID:"@string/google_app_id_release"]
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}
这是因为它生成了一个链接到正确资源的清单。但谷歌服务似乎是硬编码的,想要“app_id”作为资源名,所以当我尝试使用构建的应用程序登录时,会收到一条配置错误的消息

  • W/GameHelper:***应用程序未正确配置为使用GOOGLE PLAY游戏服务
  • W/GameHelper:***这通常是由以下原因之一引起的:
  • W/GameHelper:***(1)您的软件包名称和证书指纹不匹配
  • W/GameHelper:***您在开发者控制台中注册的客户端ID
  • W/GameHelper:***(2)您的应用程序ID输入不正确
  • W/GameHelper:***(3)您的游戏设置尚未发布,您正在发布
  • W/GameHelper:***正在尝试使用未列为帐户的帐户登录
  • W/GameHelper:***一个测试帐户
  • 带游戏助手:****
  • W/GameHelper:***为了帮助您调试,以下是有关此应用程序的信息
  • W/GameHelper:***软件包名称:com.sakadiwaa.goodtimeswithguns
  • W/GameHelper:***证书SHA1指纹:E7:B5:50:13:B8:03:D9:41:BD:22:67:D9:67:8E:3B:20:4E:85:67:60
  • W/ResourceType:获取资源号0x00000000的值时没有包标识符
  • W/System.err:android.content.res.Resources$NotFoundException:String资源ID#0x0
  • W/System.err:at-android.content.res.Resources.getText(Resources.java:322)
  • W/System.err:at-android.content.res.Resources.getString(Resources.java:420)
  • W/System.err:com.google.example.games.basegameutils.GameHelperUtils.getAppIdFromResource(GameHelperUtils.java:125)
  • W/System.err:com.google.example.games.basegameutils.GameHelperUtils.print错误配置的debuginfo(GameHelperUtils.java:109)

也许这就是您想要的:请参阅中的“每种味道的代码路径”,也许这就是您想要的:请参阅中的“每种味道的代码路径”