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

时间:2016-02-04 12:17:09

标签: android android-gradle google-play-services

我的游戏有4种不同的风格(DemoARM,DemoX86,FullARM,FullX86)和标准的两种变体(调试/发布)。

该游戏使用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" />

我的build.gradle看起来像这样

    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'
    }
}

这有效,因为它生成了一个与正确资源相关联的清单。但似乎Google服务的硬编码需要&#34; app_id&#34;作为资源名称,所以当我尝试使用构建的应用程序登录时,我收到错误配置的消息...

  • W / GameHelper:**** APP未正确配置使用Google Play游戏服务
  • W / GameHelper:****这通常是由以下原因之一引起的:
  • W / GameHelper:****(1)您的包裹名称和证书指纹不匹配
  • W / GameHelper:****您在Developer Console中注册的客户端ID。
  • W / GameHelper:****(2)您的应用ID错误输入。
  • W / GameHelper:****(3)您的游戏设置尚未发布且您
  • W / GameHelper:****尝试使用未列为
  • 的帐户登录
  • W / GameHelper:****一个测试帐户。
  • W / GameHelper:****
  • W / GameHelper:****为了帮助您调试,以下是有关此应用程序的信息
  • W / GameHelper:****包名:com.sakadiwaa.goodtimeswithguns
  • W / GameHelper:**** Cert 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:字符串资源ID#0x0
  • W / System.err:在android.content.res.Resources.getText(Resources.java:322)
  • W / System.err:在android.content.res.Resources.getString(Resources.java:420)
  • W / System.err:at com.google.example.games.basegameutils.GameHelperUtils.getAppIdFromResource(GameHelperUtils.java:125)<< li>
  • W / System.err:at com.google.example.games.basegameutils.GameHelperUtils.printMisconfiguredDebugInfo(GameHelperUtils.java:109)

0 个答案:

没有答案