android studio(gradle)根据构建变量为字符串资源分配不同的值
我有一款游戏,它有4种不同的风格(DemoARM、DemoX86、FullARM、FullX86)和标准的两种变体(debug/release) 该游戏使用Google Play登录和实时多人游戏服务 在Google Play开发者控制台中,我有3个应用程序链接到游戏;调试、演示发布和完全发布。调试应用程序使用调试证书签名,因此需要不同的OAUTH应用程序ID 我最初想通过使用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
<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)