由于GCM SenderId Android无法生成APK发布

fil*_*ski 8 android lint google-cloud-messaging

我已在我的应用中实施了GCM(Google Cloud Messaging).Google Play服务库已自动生成values.xml,其中我senderId是:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="gcm_defaultSenderId">123</string>
</resources>
Run Code Online (Sandbox Code Playgroud)

问题是我有其他语言环境,App Release期间的Lint给了我一个错误: Error:(3) Error: "gcm_defaultSenderId" is not translated in "fr" (French) [MissingTranslation]

因为它是自动生成的我无法设置translable = false.我应该怎么解决这个问题?

Mat*_*ndh 15

lint.xml在项目应用程序根目录(在app /下)添加一个文件,并在那里添加要忽略的缺失翻译:

<lint>
    <issue id="MissingTranslation">
        <ignore regexp="ga_trackingId"/>
        <ignore regexp="gcm_defaultSenderId"/>
        <ignore regexp="google_app_id"/>
    </issue>
</lint>
Run Code Online (Sandbox Code Playgroud)

这些现在将被lint忽略 - 您可以配置要忽略的属性,并且您不必等待google-services团队针对他们没有想到的属性的更新.

Lint-ing仍会捕获所有其他错误,因此您仍然可以享受其他功能.

  • 如所描述的那样完美.这对我来说似乎是最正确的解决方案.直截了当而不是黑客,因为其他一些答案在这里.提示:将lint.xml放在app /文件夹中. (2认同)

And*_*ing 6

我假设您使用的是Android Studio.

与Android Studio 1.4有完全相同的问题.

我尝试的第一件事是将"文件 - 设置 - 编辑器 - 检查 - Android Lint - 不完整的翻译"严重性设置编辑为"错误"之外的其他内容.

这并没有帮助!我仍然无法构建发布APK.

我最终"翻译"XML如下:

  1. 在文件夹.../android/res中创建一个新的语言文件夹values-de(用你的语言代码替换de).

  2. 在语言文件夹中创建名为google-services.xml的文件.

  3. 插入xml文件:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
      <string name="gcm_defaultSenderId"><YOUR_SENDERID></string>
    </resources>
    
    Run Code Online (Sandbox Code Playgroud)

    之后,我能够构建发布版本.