Lint抱怨没有翻译gcm_defaultSenderId字符串

Mar*_*och 12 android release android-lint google-cloud-messaging google-play-services

我已按照教程https://developers.google.com/cloud-messaging/android/client进行操作.它有效 - 我能够发送和接收通知.

但是当我尝试构建发布应用程序时,Android Lint抱怨:

Error: "gcm_defaultSenderId" is not translated in ...
Run Code Online (Sandbox Code Playgroud)

因此,当Lint抱怨时,我可以禁用构建失败build.gradle:

lintOptions{
    abortOnError false
}
Run Code Online (Sandbox Code Playgroud)

但显然这不是解决方案.senderId在我的应用程序中进行硬编码也不是一个好主意(gcm_defaultSenderId无论如何我们都有效,因为google-services.json它在将来要求出现问题).

Google Play服务开发人员有这种明显的疏忽吗?


编辑2015年12月2日OMG!今天google actuallt开始在这个问题上做点什么,请看这里.


免责声明:这不是因为GCM SenderId Android而无法生成APK发布的副本- 我接受的答案是不可接受的.

Cri*_*ito 2

我认为这个问题实际上是Can't generated APK Release due to GCM SenderId Android 的重复,即使我同意您对已接受答案的看法。

解决方案就简单多了,你只需要更新 Google 服务依赖版本,请查看我在那里给出的答案以了解详细信息。


编辑我给出的解决方案不足以解决问题。我认为这没问题,因为我正在开发一个多风格应用程序,并且由于我仍在调查的原因,Google Services gradle 插件仅生成除gcm_defaultSenderId主要风格之外的其他风格的字符串。

根据这个链接

此问题应通过 8.3.0 Google Play 服务和 1.5.0-beta2 依赖项来修复。

但实际上,虽然gcm_defaultSenderId现在可以正确生成字符串(带有translatable="false"属性),google_app_idga_trackingID字符串却不是。

TL;DR我得出的结论是,我们必须等待 Google 人员解决此问题,同时通过添加到应用程序级别build.gradle文件来忽略错误

...
android {
    lintOptions {
        abortOnError false
    }
}
...
Run Code Online (Sandbox Code Playgroud)