Страницы

Поиск по вопросам

воскресенье, 7 июля 2019 г.

'STRING_TOO_LARGE' при компиляции проекта в Android Studio

В Android Studio импортировал новый проект. Во время запуска происходит ошибка компиляции со следующим содержанием: error: string to large to encode using UTF-8 written instead as 'STRING_TOO_LARGE' В сети по этой информации нашел только 2 ссылки, а именно ВОТ и ЭТУ, у которых такая же проблема, но решения толком нет. В принципе, по содержанию ошибки, понятно, что произошла ошибка кодирования больших строк с помощью UTF-8. В strings.xml таких строк нет. В папке drawable много файлов у которых почти все файлы (а их много) имеют предупреждения типа: Very long vector path (5745 characters), which is bad for performance. Considering reducing precision, remove minor details or rasterising vector.
Будьте добры, подскажите, какие способы можно применить, что бы избавиться от данной ошибки. Спасибо.


Ответ

Нашел решение проблемы, благодаря подсказке пользователя v.andrikeev. Последовательность действий следующая:
Запускаем сборку с параметрами --debug И --stacktrace. Как это сделать, смотрим вот здесь. Во вкладке Build (в нижней части окна) вместо одной строки error: string to large to encode using UTF-8 written instead as 'STRING_TOO_LARGE'. При нажатии на поле Run Build C:... (восклицательный знак в красном кружке), должен появиться стек-трейс с подробной информацией об ошибке компиляции. В моем случае "корнем" проблемы в стек-трейсе было следующее содержание:
Caused by: com.android.tools.r8.utils.AbortException: Error: Program type already present: okhttp3.internal.ws.RealWebSocket$1 at com.android.tools.r8.utils.Reporter.failIfPendingErrors(Reporter.java:116) at com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:74) at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:59) ... 50 more
Если кратко, то в проекте было подключено 2 библиотеки: okhttp3-3.10.0 и okhttp3-ws-3.4.1 и у них был конфликт версий, связанный с файлом okhttp3.internal.ws.RealWebSocket. Поскольку в проекте использовалось обе библиотеки, необходимо было их сохранить. Что бы устранить конфликт библиотек, необходимо в Gradle(app) добавить следующий фрагмент кода (взял тут):
configurations.all { exclude module: 'okhttp-ws' } Ребилдим проект и наслаждаемся запускоспособной версией:)

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

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