понедельник, 16 февраля 2015 г.

Странный андроед

Случайно выяснилось, что Android Studio (а, скорее всего, Android SDK tools) не любит русские буквы (non-ASCII) в пути к местоположению проекта, если это Windows:

Я не поленился проверить, и правда - не любит, проект в Android Studio не собирается. Скорее всего это связано с тем, что в Windows путь к файлу не представлен как UTF-8 строка. Странно, что в Google поленились это проблему обойти. Второй момент: эта проблема намекает на наличие полных путей в конфигурации IDE и проекта, что не может не изумлять.
Я, за достаточно долгое время привыкнув жить в русской локали, сильно удивился этому факту. Но менять расположение каталога с проектами и кодом мне как-то не катило, особенно если учесть, что  та же Visual Stidio тоже хранит абсолютные пути в настройках проекта (например, к внешним заголовочным файлам или библиотекам). Перенастраивать проекты совершенно не хочется.
Решение нашлось в самой Windows. Оказывается, администратору доступна в терминале команда mklink, которая умеет создавать и жесткие и символические ссылки. Что примечательно, символическая ссылка в Проводнике выглядит как привычный ярлык .lnk, но таковым не является. cygwin терминал видит эту штуку тоже как символическую ссылку. Собственно, я рядом папкой "Проекты" положил символическую ссылку "Projects" на эту папку. Android Studio осталась довольна, всё собирается.

PS. Что ещё для меня загадка, так это почему, если мне хочется увидеть в windows терминале non-ASCII строки из C++-ного кода (строки из "широких" символов), то надо в самой программе выставить локаль таким образом:

std::locale::global(std::locale(""));

Комментариев нет:

Отправить комментарий

Спутник взлетает. Первая ступень отработала.

 И, кажется, неплохо: Посмотрим, что будет когда отработает вторая.