12

Я следил за учебником https://developers.google.com/cloud-messaging/android/client. Он работает - я могу отправлять и получать уведомления.Lint жалуется на не переведена gcm_defaultSenderId строка

Но когда я пытаюсь построить приложение релиз, Android Lint жалуется:

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

Так что я могу отключить сборку неудачу, когда Lint жалуется с этим в build.gradle:

lintOptions{ 
    abortOnError false 
} 

Но очевидно, что это не решение. Hardcoding senderId в моем приложении тоже не очень хорошая идея (у нас есть действительный gcm_defaultSenderId в любом случае в google-services.json, поэтому в два раза он просит проблем в будущем).

Есть ли какой-либо путь над этим явным надзором со стороны разработчиков Google Play Services?


EDIT 2 декабря 2015 OMG! Сегодня google actallt начал что-то делать по этому вопросу, see here.


Отказ от ответственности: это не является дубликатом Can't generate APK Release because of GCM SenderId Android - принятый ответ не является приемлемым для меня.

+0

Этот вопрос не был адресован Google, до сих пор нет ответа, если я получаю один я выложу его здесь. –

ответ

2

Я думаю, что этот вопрос на самом деле дублируется Can't generate APK Release because of GCM SenderId Android, даже если я согласен с вашим мнением относительно принятого ответа.

Решение намного проще, вам нужно только обновить версию зависимостей Google Apps, взгляните на answer. Я дал там подробную информацию.


EDIT Решение, которое я дал не достаточно, чтобы решить эту проблему. Я думал, что все в порядке, потому что я работаю над многопользовательским приложением, и по причинам, которые я до сих пор изучаю, плагин Google Apps для градиентов генерирует только строку gcm_defaultSenderId в ароматах, отличных от основного.

Согласно этому link,

Эта проблема должна быть решена с 8.3.0 Google Play Services и 1.5.0-beta2 зависимость.

Но на самом деле, в то время как gcm_defaultSenderId строка теперь генерируется правильно (с translatable="false" атрибутом), google_app_id и ga_trackingID строки не являются.

TL; DR я пришел к выводу, что мы должны ждать Google ребята, чтобы устранить эту проблему и проигнорировать ошибку в то же время, добавив к уровню приложения build.gradle файл

... 
android { 
    lintOptions { 
     abortOnError false 
    } 
} 
... 
+0

Это своего рода дубликат. Но, пожалуйста, см. Мой вопрос «Отказ от ответственности: это не дубликат Can not generate APK Release из-за GCM SenderId Android - принятый ответ мне неприемлем». Оригинальный владелец вопроса принял самый смешной ответ, поэтому мне пришлось создать еще один вопрос, чтобы собрать другие, надеюсь, правильные ответы. Пожалуйста, обновите свой вопрос, чтобы фактически указать, что нужно сделать, и я проверю, помогает ли это. –

+0

В любом случае это не помогло. –

+0

Прошу прощения, я не очень хорошо объяснял, я согласен с вами в том, что принятый ответ - не лучшая практика для решения проблемы, даже не рекомендованная на мой взгляд, потому что это всего лишь обходной путь, который обходит настоящую проблему. На самом деле, на следующий день после моего ответа у меня были некоторые другие проблемы, связанные с первой, другие сгенерированные строки, дающие мне проблемы (хотя «gcm_defaultSenderId» не среди них, потому что после обновления он генерируется с «переводимым» свойством, установленным в false). В настоящее время я изучаю, что я могу сделать, чтобы решить эти другие проблемы, я обновлю, когда узнаю. – Ultimecia

0

Попробуйте это

android { 
lintOptions { 
    disable 'MissingTranslation' 
} 

}

 Смежные вопросы

  • Нет связанных вопросов^_^