Ответ 1
Если вы не поддерживаете RTL (= Right To Left locales), вам нужно заменить все ссылки start на left и end справа в ваших xml-макетах.
Атрибуты "start", "end", "paddingStart", "paddingEnd", "android: layout_alignParentStart" и т.д. являются "атрибутами RTL": их значение зависит от текущей локали. Риск не делать это заключается в том, что если кто-то устанавливает свой системный язык на арабский или иврит, ваши макеты будут зеркалированы, даже если текст все еще отображается на турецком языке.
В частности, "start" означает "right", если:
- текущий системный язык - RTL (арабский, иврит...)
- И Android-устройство API 17 или выше
- И android: supportsRtl установлен в true в манифесте
В противном случае означает "left".
Итак, вы получите это предупреждение, если вы использовали android: layout_gravity = "start" или любой атрибут start/end в любом из ваших макетов, и вы не установили android: supportsRtl = true " в манифесте.
Обратите внимание, что если ваш минимальный SDK равен 16 или ниже, и вы не хотите поддерживать RTL, вам действительно нужно выбрать одно из предупреждений:
- Если вы замените start налево, вы получите предупреждение: Используйте "start" вместо "left", чтобы обеспечить правильное поведение в локациях справа налево Id = RtlHardCoded
- если вы установите android: supportsRtl на false: Атрибут "поддерживает Rtl" используется только в уровне API 17 и выше (текущий минимум равен 9). Id = UnusedAttribute
- в противном случае: ** Проект ссылается на атрибуты RTL, но явно не включает или отключает поддержку RTL с помощью android: поддерживает Rtl в манифесте ** Id = RtlEnabled
Если вы не поддерживаете RTL, логично установить RtlHardCoded в Info вместо предупреждения.
Дополнительная информация:
http://developer.android.com/guide/topics/manifest/application-element.html#supportsrtl