【问题标题】:Lint complains about not translated gcm_defaultSenderId stringLint 抱怨未翻译 gcm_defaultSenderId 字符串
【发布时间】:2015-12-13 23:18:40
【问题描述】:

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

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

Error: "gcm_defaultSenderId" is not translated in ...

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

lintOptions{
    abortOnError false
}

但这显然不是解决方案。在我的应用程序中硬编码senderId 也不是一个好主意(我们在google-services.json 中有有效的gcm_defaultSenderId,所以加倍它会在将来提出问题)。

有什么办法可以绕过 Google Play 服务开发者的明显疏忽?


编辑 2015 年 12 月 2 日 我的天啊!今天google开始在这个问题上做点什么,see here


免责声明:这不是 Can't generate APK Release because of GCM SenderId Android 的重复 - 接受的答案对我来说是不可接受的。

【问题讨论】:

  • 这个问题已经发给google了,还是没有答案,如果有我会发在这里的。

标签: android google-cloud-messaging google-play-services release android-lint


【解决方案1】:

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

解决方案要简单得多,你只需要更新谷歌服务依赖版本,详细看我给的answer


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

据此link

应该使用 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
    }
}
...

【讨论】:

  • 有点重复。但请参阅我的问题“免责声明:这不是由于 GCM SenderId Android 而无法生成 APK Release 的重复 - 接受的答案对我来说是不可接受的。”最初的问题所有者接受了最荒谬的答案,所以我不得不创建另一个问题来收集其他的,希望是正确的答案。请更新您的问题以实际说明需要做什么,我会检查它是否有帮助。
  • 无论如何它没有帮助。
  • 对不起,我没有解释清楚,我同意你的观点,即接受的答案不是解决问题的最佳实践,甚至在我看来也不推荐,因为它只是一个绕过真正问题的解决方法。实际上,在我回答后的第二天,我遇到了与第一个相关的其他问题,其他生成的字符串给我带来了问题(尽管“gcm_defaultSenderId”不在其中,因为在更新后它是在“可翻译”属性设置为 false 的情况下生成的)。我目前正在研究我可以做些什么来解决这些其他问题,我会在发现时更新。
  • 经过更多研究,我发现了这个link。这里确认了gcm_defaultSenderId 的问题已解决,但其他字符串仍然存在(正如我在第一人称中所经历的那样)我得出的结论是我们必须忽略 lint 错误,然后对每个新版本的com.google.gms:google-services 如果这完全解决了就会出现。
  • 无论如何我很抱歉我收到了反对票,我在第一时间回答了因为我实际上认为这个问题已经解决了。发生这种情况是因为我正在使用多风味应用程序,并且由于某些原因我仍在调查,gradle 插件仅在主要风味以外的风味上生成 gcm_defaultSenderId 字符串,所以我没有注意到问题仍然存在,直到我需要在第二天建立主要风味。我现在正在编辑我的回复以使其正确。
【解决方案2】:

试试这个

android {
 lintOptions {
    disable 'MissingTranslation'
}

}

【讨论】:

    猜你喜欢
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 2012-12-12
    相关资源
    最近更新 更多