Когда я очищаю проект Android в студии Android, возникает ошибка, я вернулся к предыдущей фиксации или другой ветке, которая работает пару дней назад, но теперь имеет эту ошибку. Я проверил этот вопрос, и в мой проект не добавлено большое изображение или строки. STRING_TOO_LARGE Строка в Котлине
Кто нибудь нашел решение?
@Nikhil Пока нет, у меня это работает ... ничего не делая
@Xianwei То же самое и для меня. это немного странно, но теперь он работает, ничего не делая
Я нашел решение для проверки apk и должен указать вам на проблему. Смотрите мой ответ ниже.
Для меня это был файл svg, который я использовал для создания значков в студии изображений Android. когда я очистил путь к этому svg-файлу и сделал значок простым, ошибка исчезла.




В настоящее время вы можете понизить версию Gradle, чтобы решить эту проблему. Используйте версию Gradle 3.1, как показано ниже 3.1.3.
classpath 'com.android.tools.build:gradle:3.1.3'
Я получил эту ошибку, когда я обновил gradle с 3.1.3 до 3.2.0, я не хочу использовать версию ниже 3.2.0
Я всегда получаю эту ошибку при попытке добавить библиотеку полос "com.stripe: stripe-android: 6.1.2" в любой проект, включая пустой. Иногда я могу избавиться от него, удалив каталоги Gradle и повторно синхронизируя его, но понижение версии плагина Gradle кажется единственным надежным вариантом, чтобы он исчез навсегда Версии плагина Gradle
@Elletlar и все, у кого была эта проблема из-за Stripe SDK: Версия 6.1.2 SDK включает вектор, который можно рисовать с очень длинным путем. Этот путь вызывает ошибку и заменяется на "STRING_TOO_LARGE". Они исправили это в этой фиксации github.com/stripe/stripe-android/pull/547, поэтому любая версия, включающая это исправление (7.0.0 и выше), устраняет ошибку. На момент написания я использую 8.1.0.
Спасибо, это большая помощь. Я следовал руководству по интеграции Stripe: Руководство. Они по-прежнему выступают за использование «implementation 'com.stripe: stripe-android: 6.1.2'». Я полагаю, что никто не обновляет свой гайд ... С уважением.
Это не выход!
Мне кажется, что переход на более раннюю версию немного хакерский.
Не работает с Android Studio 3.5.2; получить ошибку 'ERROR: JAVA_LETTER_OR_DIGIT'
Конечно, в то время это не было решением, а всего лишь временным решением.
Вы можете использовать AAPT (из android sdk / build-tools) для проверки APK и поиска ошибочной строки с помощью следующей командной строки (Linux):
// Linux/Mac
./aapt dump --values resources MyAppName-regular-debug.apk | grep -B 1 'STRING_TOO_LARGE'
// Windows
aapt dump --values resources MyAppName-regular-debug.apk | grep -B 1 'STRING_TOO_LARGE'
Что должно указать вам на виновника. В моем случае это было:
resource 0x7f0f015a com.example.app:string/eula: t=0x03 d=0x00000f10 (s=0x0008 r=0x00)
(string8) "STRING_TOO_LARGE"
Это лучший способ определить, какая строка слишком длинная! Спасибо.
Когда я использую эту командную строку, ничего не появляется. Значит ли это, что это не из строки?
Я тоже ничего не получаю
Это отличное решение, однако эта команда у меня не сработала, поэтому я просто декомпилировал свой apk (используйте любой онлайн-декомпилятор), а затем запустил: grep -r "STRING_TOO_LARGE" /decompiled_apk_folder. В моем случае он указал мне прямо на проблемный файл SVG.
Я столкнулся с таким же и исправил очистить кеш сборки.
Как я могу сделать это из Android Studio?
Это исправлено для моей проблемы
Я застрял на этой проблеме и прочитал эту тему, и никто не предложил будущего решения. Я НЕ хотел возвращать свой Gradle. Поэтому вот ссылка на обновленные зависимости https://github.com/stripe/stripe-android. Найдите раздел «Android Studio (или Gradle)», и вы должны увидеть этот "implementation 'com.stripe:stripe-android:8.1.0'", также вам может потребоваться добавить "-keep class com.stripe.android.** { *; }", если вы включаете минификацию в файле build.gradle.
В целом Stripe перестала обновлять свои собственные «документы Stripe», которые можно найти здесь. Чтобы отдать им должное, их документы полезны и должны быть прочитаны хотя бы один раз, но имейте в виду, что большинство документов устарели, когда я писал это ...
Надеюсь это поможет :)
Идеальное решение для моего случая
Ни одно из вышеперечисленных решений не помогло мне. В конечном итоге причиной проблемы была, как говорится, слишком большая строка. В частности, в моем файле array.xml в каталоге значений у меня было несколько массивов SVG, которые использовались в моем приложении, и их комментарии решили проблему.
Если вы точно знаете, что где-то в ваших каталогах ресурсов (/ res) есть более длинные строки, проверьте, не скрываются ли большие строки.
Кроме того, это решение может помочь другим, но не был связан с этим потоком.
просто используйте <?xml version = "1.0" encoding = "utf-8"?> раньше в своем файле с возможностью рисования.
Пример:
<?xml version = "1.0" encoding = "utf-8"?>
<vector
android:autoMirrored = "true"
android:height = "24dp"
android:viewportHeight = "490.282"
android:viewportWidth = "490.282"
android:width = "24dp"
xmlns:android = "http://schemas.android.com/apk/res/android">
<path
android:fillColor = "#fff"
android:pathData = "M0.043,245.197c0.6,10.1 7.3,18.6 17,21.5l179.6,54.3l6.6,123.8c0.3,4.9 3.6,9.2 8.3,10.8c1.3,0.5 2.7,0.7 4,0.7c3.5,0 6.8,-1.4 9.2,-4.1l63.5,-70.3l90,62.3c4,2.8 8.7,4.3 13.6,4.3c11.3,0 21.1,-8 23.5,-19.2l74.7,-380.7c0.9,-4.4 -0.8,-9 -4.2,-11.8c-3.5,-2.9 -8.2,-3.6 -12.4,-1.9l-459,186.8C5.143,225.897 -0.557,235.097 0.043,245.197zM226.043,414.097l-4.1,-78.1l46,31.8L226.043,414.097zM391.443,423.597l-163.8,-113.4l229.7,-222.2L391.443,423.597zM432.143,78.197l-227.1,219.7l-179.4,-54.2L432.143,78.197z"/>
</vector>
В моем случае проблема была связана со следующими строками в манифесте:
<activity
android:name = "com.facebook.FacebookActivity"
android:configChanges = "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label = "@string/app_name"/>
Как только я их удалил, сборка прошла нормально.
Просто используйте gradlew cleanBuildCache в своем студийном терминале Android.
В моем случае я удалил представление из xml, но забыл удалить его ссылки в моем коде kotlin. Обязательно проверьте это, прежде чем делать что-нибудь необычное.
Я нашел файл SVG с очень длинным pathData. Я закомментировал это, и ошибка исчезла. Тот же самый вектор (при вызове) во время выполнения вызовет сбой (до того, как он будет закомментирован).
Я нашел ответ на повторяющийся вопрос по Kotlin от здесь
Добавьте <?xml version = "1.0" encoding = "utf-8"?> в начало любого XML-файла ресурса, в котором он отсутствует. (особенно проверьте свои XML-файлы макета)
В моем случае я объявил строковую переменную в xml, используя привязку данных, без присвоения ей значения. путем установки значения переменной проблема решена
Я долго искал источник ошибок STRING_TOO_LARGE в нашей сборке, и ни одно из этих решений не помогло. Причина, по которой ни один из них не работал, заключалась в том, что у меня был включен progaurd в отладочных сборках, поэтому, когда строка была заменена, она не попала в apk. Когда я отключил progaurd для отладочных сборок, построил apk, а затем декомпилировал с помощью apktool, как предлагалось в другом месте
java -jar apktool_2.4.1.jar d debug.apk
и нашел xml-файл, который был в другой библиотеке, но до этого был удален progaurd:
grep -r "STRING_TOO_LARGE" ./debug
Надеюсь, это кому-то поможет
Для меня "gradlew cleanBuildCache" не работает, и запуск aapt dump --values resources MyAppName-regular-debug.apk | grep -B 1 'STRING_TOO_LARGE' тоже ничего не сделал ...
В итоге я просто удалил все свои векторные изображения, так как все они были довольно большими, и это исправило мою сборку. .. Думаю, мне придется добавить их обратно так, чтобы ошибка не возникала снова ..
Поиск файла с ошибкой: используйте онлайн-декомпилятор, если это не проблема, кто-то еще видит ваш код. Загрузите файл .zip. Откройте блокнот ++search -> Find in files -> STRING_TOO_LARGE -> Find all.
Если проблемный файл является векторным ресурсом:
Викасдип Сингх предлагает отличное решение: авокадо.. Авокадо уменьшит размер векторного файла.
Ага !, в моем случае один из моих файлов векторных ресурсов был «слишком большим» и приводил к сбою приложения.
Бывает, у меня слишком длинный SVG (90Кб). Итак, я открыл де SVG в Adobe Illustrator, упростил путь к значительному количеству векторных изображений, так что новый значок весит 3 КБ и, наконец, снова импортирован в Android Studio.
Вы можете взглянуть на свой проект в Android Studio и посмотреть, больше ли ваши SVG-чертежи, чем необходимо для значка.
В моем случае я переименовал пакет, и output-metadata.json содержал старое имя пакета. Там переименовали имя пакета, и это было исправлено.
вместо этого
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
Заменил на этот в gradle.properties
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=STRING_TOO_LARGE
У меня такая же проблема после обновления проекта Java до последней версии Gradle.