Lint抱怨未翻译gcm_defaultSenderId字符串。

12
我已经按照教程 https://developers.google.com/cloud-messaging/android/client 进行操作。目前可以发送和接收通知。但是当我尝试构建发布版本的应用时,Android Lint出现了问题:
Error: "gcm_defaultSenderId" is not translated in ...

我可以在build.gradle中使用以下方法禁用Lint提示,以避免构建失败:

lintOptions{
    abortOnError false
}

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

是否有任何方法可以避免Google Play服务开发人员的这个明显疏忽?


编辑于2015年12月2日 天啊!今天谷歌实际上开始处理这个问题了,请参见此处


免责声明:这不是因为GCM SenderId Android无法生成APK版本而重复提问的问题 - 接受的答案对我来说不可接受。


这个问题已经向Google提出,但仍未得到答复。如果我收到回复,我会在这里发布。 - Marian Paździoch
2个回答

2
我认为这个问题实际上是Can't generate APK Release because of GCM SenderId Android的重复,即使我同意您对被接受答案的看法。
解决方案要简单得多,只需要更新Google服务依赖版本,详细信息请参见我在那里给出的答案
编辑 我给出的解决方案不足以解决问题。我认为它是可以的,因为我正在开发一个多口味应用程序,并且由于某些原因,Google服务gradle插件仅在主要口味之外生成gcm_defaultSenderId字符串。
根据这个链接

这个问题应该在8.3.0 Google Play Services和1.5.0-beta2依赖性中得到解决。

但实际上,虽然gcm_defaultSenderId字符串现在正确生成(带有translatable="false"属性),但google_app_idga_trackingID字符串没有。 TL;DR 我得出结论,我们必须等待Google的开发人员解决这个问题,并在此期间通过向应用程序级别的build.gradle文件添加来忽略错误。
...
android {
    lintOptions {
        abortOnError false
    }
}
...

这有点重复了。但请看一下我的问题:“免责声明:这不是 Can't generate APK Release because of GCM SenderId Android 的重复——接受的答案对我来说不可接受。” 原问题提问者接受了可能最荒谬的答案,所以我不得不创建另一个问题来收集其他、希望是正确的答案。请更新您的问题以确切地陈述需要完成的内容,我会检查它是否有帮助。 - Marian Paździoch
无论如何,这并没有帮助。 - Marian Paździoch
很抱歉我没有解释清楚,我同意你的观点,即所接受的答案并不是解决问题的最佳实践,甚至在我看来也不推荐,因为它只是一个绕过真正问题的解决方法。事实上,在我的回答之后的那一天,我遇到了与第一个问题相关的其他问题,其他生成的字符串给我带来了问题(尽管“gcm_defaultSenderId”不在其中,因为更新后它是以“translatable”属性设置为false生成的)。我正在调查我能做些什么来解决这些其他问题,我会在找到答案时进行更新。 - Cristina De Rito
在进一步研究后,我发现了这个链接(https://github.com/grazies/analytics-issues/issues/733)。在这里确认了`gcm_defaultSenderId`的问题已经解决,但其他字符串的问题仍然存在(就像我第一次经历的一样)。我得出的结论是:我们必须忽略lint错误,然后在每个新版本的com.google.gms:google-services中尝试,如果完全修复了这个问题。 - Cristina De Rito
无论如何,很抱歉我受到了负分评价,我第一时间回答是因为我真的认为问题已经解决了。这是因为我正在开发一个多种口味的应用程序,由于某些原因我仍在调查中,Gradle插件只会在主要口味之外的口味上生成“gcm_defaultSenderId”字符串,因此直到第二天我需要构建主要口味时才注意到问题仍然存在。我现在正在编辑我的回复以确保它正确。 - Cristina De Rito
请检查我向Google报告的问题 https://code.google.com/p/android/issues/detail?id=195824 ,如果您知道需要特殊处理的其他字符串,请更新它。 - Marian Paździoch

0

试试这个

android {
 lintOptions {
    disable 'MissingTranslation'
}

}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接