Android studio ошибка при компиляции

Методы лечения различных ошибок в Android Studio при разработке проекта

Сегодня хотел бы поделиться своим анализом и способами лечением разных ошибок при разработке своего продукта в Android Studio. Лично я, не раз сталкивался с различными проблемами и ошибками при компиляции и/или тестировании мобильного приложения. Данный процесс, всегда однообразный и в 99% случаев и всегда нужно тратить n-колличество времени на его устранение. Даже, когда ты уже сталкивался с данной проблемой, ты все равно идешь в поисковик и вспоминаешь, как же решить ту или иную ситуацию.

Я для себя завел файлик, в котором отметил самые частые ошибки — потратив на это несколько часов и перечислил самые популярные ошибки (в дальнейшем планирую просто их запомнить), чтоб сократить свое время в дальнейшем.

Итак, начну по порядку с самой распространенной проблемы и дальше буду перечислять их по мере появления:

1) Если подчеркивает красным код, где используются ресурсы: R. — попробовать (но вероятно не поможет): Build -> Clean Project.

В принципе на Build -> Clean Project можно не терять времени, а лучше всего — слева переключиться на Project, открыть каталог .idea, затем каталог libraries и из него удалить все содержимое. Затем нажать кнопку Sync Project. А затем (если все еще красное, но скорее всего уже будет все ок ) Build -> Clean Project.

2) После внезапного выключения компьютера, после перезапуска может быть во всех проектах весь код красным. Перед этим может быть ошибка: Unable to create Debug Bridge: Unable to start adb server: Unable to obtain result of ‘adb version’. Есть три решения — первое помогло, второе нет (но может быть для другого случая), а третье — не пробовал:

а) File — Invalidate Caches/Restart — Invalidate and Restart

б) Закрыть студию. В корне папки проекта удалить файл(ы) .iml и папку .idea. Вновь запустить студию и импортировать проект.

в) Нажать Ctrl-Alt-O и запустить оптимизацию импорта.

Кстати, adb сервер можно проверить на версию (и работоспособность) и затем перезапустить:

3) Если Android Studio выдает приблизительно такую ошибку: Error:Execution failed for task ‘:app:dexDebug’.

Надо слева переключиться на опцию Project, найти и удалить папку build которая лежит в папке app, т.е. по пути app/build. Затем перестроить весь проект заново: Build -> Rebuild Project.

Такое же решение если ошибка типа: «не могу удалить (создать) папку или файл» и указан путь, который в ведет в app/build. Тоже удаляем папку build и ребилдим проект.

4) В сообщении об ошибке упоминается heap — виртуальная память. А ошибка обычно вызвана ее нехваткой, т.е. невозможностью получить запрашиваемый объем. Поэтому этот запрашиваемый объем надо уменьшить, т.е. переписать дефолтное значение (обычно 2048 MB которое можно изменить в настройках), на меньшее 1024 MB.

В файле проекта gradle.properties пишем:

5) Android Studio пришет примерно такую ошибку: Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to «83648b99316049d63656d7276cb19cc7e95d70a5»

Возможные причины (кроме необходимости регулярного обновления SDK):

а) Загруженный проект был скомпилирован с помощью уже несовместимого старого gradle плагина. В этом случае надо найти и подключить в своем build.gradle проекта этот более старый плагин. т.е. попробовать более старые версии, например: 1.1.3 (часто именно 1.1.x и подходит).

Найти все версии можно здесь.

б) Если в build.gradle проекта используется beta-версия плагина — это означает, что срок ее истек. Посмотреть последние релизы (продакшн и бета) можно также здесь:

6) Иногда при подключении сторонних библиотек могут дублироваться некоторые файлы (обычно связанные с лицензированием). В сообщении будет что-то содержащее слова: duplicate files. Решение — надо посмотреть в сообщении об ошибке или в документации подключенной сторонней библиотеки — какие именно файлы стали избыточными, и перечислить их в build.gradle модуля для исключения (exclude) из билда.

Читайте также:  Андроид настройка ассоциации файлов

Это делается в директиве packagingOptions (которая, в свою очередь, находится в директиве android).

Источник

Ошибка компиляции Android Studio при попытке создания зависимостей

Я пытался решить эту проблему целый день, и это, вероятно, просто что-то нелепое. Я запускаю Android Studio 0.2.5. Мне понадобилась библиотека для работы над моим приложением (внутренние вещи GrepCode), поэтому я пошел и загрузил файл jar и файлы jar, от которых он зависит. Я выполнил инструкции из других ответов SO о том, как включить эти зависимости в мой проект, и теперь я получаю сообщение об ошибке.

1) Я сначала добавил банки в папку «libs», которую я создал в модуле

2) Я щелкнул правой кнопкой мыши и нажал кнопку «Добавить в библиотеку», назвал библиотеку, попытался добавить ее на разных уровнях и по-прежнему получить эту ошибку.

3) Я вошел в раздел «Модули» настроек и убедился, что библиотека была выбрана на вкладке «Зависимости».

4) Я запускаю gradlew clean в каталоге Project.

Теперь, если я не делаю шаг 5 здесь, я просто получаю сообщение о том, что пакеты, которые я пытаюсь импортировать, не существуют, даже если в IDE не появляется ошибка при вводе операторов импорта или классы из библиотек. Из-за этого я пробовал шаг 5. Согласно всем руководствам, я должен был сработать.

5) В моем build.gradle зависимости не отображались, поэтому я набрал их, и теперь это то, как выглядит мой раздел зависимости. Если я их не набираю, я просто получаю сообщение об ошибке, которое говорит, что пакеты не существуют, когда я пытаюсь их импортировать.

После этого я получаю сообщение об ошибке в поле сообщения: «Gradle: Execution failed for task»: SendPicTest: dexDebug ‘. «

И в идее.log я нахожу эту ошибку: «java.lang.OutOfMemoryError: превышен верхний предел GC»

Итак, я считаю, что шаг 5 не нужен, но я не уверен. Я пробовал много разных способов импорта этих библиотек, и НИЧЕГО не работало. Я закончил потерянный. у кого-нибудь есть идеи? Благодарю!

РЕДАКТИРОВАТЬ

Посмотрев на ваш список зависимостей, кажется очевидным, что проблема есть. Я предлагаю вам попробовать:

1) понять, почему вы решили включить каждую из этих библиотек.

2) понять архитектуру и процесс сборки Android. (возможно, прочитайте это)

Вот несколько замечаний:

openjdk-6-b14.jar ДОЛЖЕН быть удален. Вы разрабатываете приложение для Android, поэтому оно будет работать против Android SDK. Android SDK уже определяет большинство классов openjdk (так что у вас будут конфликты при использовании этой банки). Кроме того, много классов в этой банке просто не являются dexable (например, javax.swing. *), Потому что они используют неподдерживаемые функции и не влияют на Android.

android-4.2.2_r1.jar — это заглушка (посмотрите на код: все методы вызывают исключение). Этот артефакт можно использовать только для сборки вашего кода Android с помощью стандартного javac-компилятора (и, следовательно, создания *.class файла). После этого все ваши *.class будут дешированы (т.е. преобразованы в *.dex файлы) компилятором android. Во время выполнения будет использоваться реальная реализация android-api (вместо этого артефакта).

servlet-api: очень редко это нужно в Android-приложении. Он определяет только API (без реализации). Реализация обычно обеспечивается сервером приложений (tomcat, jboss. ) в стандартном J2EE-разработке. Android-sdk не обеспечивают реализацию для этого API.

junit: обычно зависит от проверки области.

httpcore (и, вероятно, также httpclient): распространенная ошибка на android. Старая реализация этой библиотеки включена в android-sdk. Если вы сохраните его, у вас будет исключение верхнего уровня при создании приложения (это исключение означает, что вы пытаетесь переопределить класс из android-sdk: это невозможно)

opengl-api-gl1.1-android-2.1_r1.jar: Я не знаю точно, что он содержит, но я предполагаю, что здесь применяется то же замечание, что и то, что я написал об android-4.2.2_r1.jar.

END EDIT

Итак, я считаю, что шаг 5 не нужен

Нет необходимости в шаге 5! build.gradle — это где зависимости определены. поэтому, если AndroidStudio не обновляет этот файл для вас: сделайте это вручную.

После этого вам может понадобиться повторно импортировать проект из файлов градиентов (найдите кнопку reimport над представлением градиента на правом краю окна)

Читайте также:  Универсальный просмотрщик файлов для андроид

Что касается ошибки в файле журнала:

Вы можете увеличить настройки памяти AndroidStudio из этого файла:

если вы запускаете 64-битную версию.

Я предлагаю вам попробовать изменить настройки, чтобы избежать превышения «верхнего предела java.lang.OutOfMemoryError: GC overhead»

Эта ошибка означает, что GC работает очень долго (98% времени) и освобождается менее 2% кучи. Поэтому вы можете попытаться увеличить кучу (и перезапустить AndroidStudio):

Другой вариант — отключить эту проверку, добавив эту строку в файл *.vmoptions:

(обратите внимание, что, поскольку он не является стандартным JVM-аргументом: он может не поддерживаться вашей JVM) В любом случае я не рекомендую этот вариант, так как GC будет работать некоторое время с очень плохими результатами, и ваша среда IDE будет очень невосприимчивой,

Я также предлагаю вам прочитать это в отношении использования AndroidStudio сегодня.

Источник

Ошибка при компиляции сборки релиза в Android Studio 3.0 RC2

Как я могу решить эту проблему при компиляции сборки релиза в Android Studio 3.0 RC2

Ошибка: Ошибка: в общем журнале определяются классы, конфликтующие с классами, которые теперь предоставляет Android. Решения включают в себя поиск более новых версий или альтернативных библиотек, у которых нет такой же проблемы (например, для httpclient вместо этого используйте HttpUrlConnection или okhttp), или переупаковка библиотеки с использованием чего-то вроде jarjar. [ DuplicatePlatformClasses ]

Ошибка: ошибка: httpclient определяет классы, которые конфликтуют с классами, которые теперь предоставляет Android. Решения включают в себя поиск более новых версий или альтернативных библиотек, у которых нет такой же проблемы (например, для httpclient вместо этого используйте HttpUrlConnection или okhttp), или переупаковка библиотеки с использованием чего-то вроде jarjar. [ DuplicatePlatformClasses ]

Мой build.gradle это

6 ответов

Добавить в build.gradle, расположенный в модуле приложения

В моем случае первая проблема (commons-logging) была решена, исключив ее из импорта opencsv:

Добавить в app / build.gradle

Я исправил это с помощью чистой / перестройки. Также убедитесь, что в вашем gradle для Glide есть annotationProcessor ‘com.github.bumptech.glide: compiler: 4.2.0’.

Та же ошибка, которую я исправил этим фрагментом кода .

Источник

Ошибка Android Studio Gradle во время компиляции

У меня Android-приложение в Android Studio. Когда я создаю проект с Gradle File, он дает мне одну ошибку во время компиляции. Сообщение об ошибке:

Пожалуйста, дайте мне решение об этой ошибке.

– это любая версия распространения градиента (ref: https://developer.android.com/studio/releases/gradle-plugin.html#revisions ). Например, это может быть «1.9» или «2.10» или какой-либо другой номер версии.

Проект 2.Sync с файлом Gradle

Это то, что сработало для меня:

Android Studio -> Файл -> Недействительные кеши и перезагрузка

Для меня я попытался:

1) аннулировать кеширование.

2) остановить плагины сторонних разработчиков.

3) удалить хранилище градиентов.

4) удалите /. Gradle / 2. * (Которые не являются текущей версией градиента)

Но это не сработало.

Наконец, ответ подобен MAC113,

Delete /. Gradle / 2.10 (2.10 – моя текущая версия градиента)

Остановка демона градиента работала для меня.

  • Перейдите на терминал и запустите ./gradlew –stop
  • Перестройте проект.

Ни одно из этих решений не работает для меня. Я закончил:

  • Клонировать мой проект в новую папку
  • Удалить .gradle, .idea папки
  • Добавить как новый проект (Файл> Открыть> [Новая папка])

Оно работает! Это странная проблема, которую я когда-либо встречал.

Простое решение! Просто на моей стороне. Это был проект, экспортированный из Unity Studio.

После экспорта из Unity град был похож на com.android.tools.build:gradle:2.1.0

Затем я изменил его на com.android.tools.build:gradle:2.2.0, и он сработал.

Также не забывайте менять хранилища от mavencenteral до jcenter ().

Источник

Устранение неполадок Android Studio¶

Потеряно хранилище ключей¶

Если вы используете одно и то же хранилище ключей при обновлении AndroidAPS, вам не нужно деинсталлировать предыдущую версию на смартфоне. Поэтому рекомендуется хранилище ключей размещать в надежном месте.

На случай, если вы не можете найти свое старое хранилище ключей, выполните следующие действия:

  1. Экспорт настроек на вашем телефоне.
  2. Скопируйте настройки вашего телефона во внешнее местоположение (напр. ваш компьютер, служба облачного хранения. ).
  3. Убедитесь, что файл параметров “Параметры AndroidAPS” сохранен.
  4. Сгенерируйте подписанный apk новой версии, как описано на странице обновления ` _.
  5. Деинсталлируйте предыдущую версию AAPS на вашем телефоне.
  6. Установите новую версию AAPS на свой телефон.
  7. Импортируйте настройки — если не можете найти их на вашем телефоне, скопируйте их из внешнего хранилища.
  8. Продолжайте пользоваться циклом.
Читайте также:  Почему airpods плохо работают с андроид

Предупреждение компилятора Kotlin¶

Если сборка завершена успешно, но вы получаете предупреждения компилятора Kotlin, просто проигнорируйте эти предупреждения.

Приложение успешно построено и может быть перенесено на телефон.

Ключ создан с ошибками¶

При создании нового хранилища ключей для построения подписанного APK в Windows может появиться следующее сообщение об ошибке

Это, кажется, ошибка в Android Studio 3.5.1 и в среде Java в Windows. Ключ создается правильно, но рекомендация выводится как ошибка. В настоящее время это можно игнорировать.

Не удалось загрузить… / Работа оффлайн¶

Если вы получите подобное сообщение об ошибке

убедитесь, что ‘Автономная работа’ выключена.

Ошибка: buildOutput.apkData не может быть пустым¶

Иногда появляется сообщение об ошибке при компоновке apk

Ошибки при сборке APK.

Ошибка: buildOutput.apkData не может быть пустым

Эта известная ошибка в Android Studio 3.5 и, вероятно, она не будет исправлена до Android Studio 3.6. Есть три варианта:

  1. Вручную удалите три папки компоновки (обычная “сборка”, папка компоновки в “app” и папка компоновки в “wear”) и снова сгенерируйте подписанный apk.
  2. Установите папку назначения в папку проекта, а не в папку приложения, как описано в этом видео `_.
  3. Измените папку назначения apk (другое расположение).

Не удается запустить демон процесс¶

Если вы видите подобное сообщение об ошибке, вы, вероятно, используете ОС Windows 10, 32-bit. Она не поддерживается Android Studio 3.5.1 и выше. В Windows 10 следовать использовать 64-битную операционную систему.

В интернете много руководств, как определить, у вас 32-или 64-битная ОС- например ” это ` _.

Нет данных CGM мониторинга¶

  • В случае, если вы используете xDrip+: идентифицируйте ресивер, как описано в настройках xDrip+ `_.

ContextEdit. * In case you are using patched Dexcom G6 app: This app is outdated. Use BYODA instead.

Неодобренные изменения¶

Если вы получите сообщение об ошибке, как это

Вариант 1 — Проверить установку git¶

  • возможно, git установлен неправильно (должен быть доступен по всему миру)
  • после установки Git в Windows и, нужно перезапустить компьютер или хотя бы раз выйти и снова войти в систему, чтобы сделать git глобально доступным
  • Проверьте установку git
  • Если на вашем компьютере не отображается версия gti, но git установлен, убедитесь, что Android Studio знает, где находится `git. /Installing-AndroidAPS/git-install.html#set-git-path-in-android-studio>`_ на своем компьютере.

Вариант 2 — Перезагрузка исходного кода¶

  • В Android Studio выберите VCS -> GIT -> Сбросить HEAD

Вариант 3 — проверить наличие обновлений¶

  • Скопируйте «git checkout –» в буфер обмена (без кавычек)
  • Переключитесь на терминал в Android Studio (слева с нижней стороны окна Android Studio)
  • Вставьте скопированный текст и нажмите ввод

Приложение не установлено¶

  • Убедитесь, что вы передали файл «full-release.apk» на ваш телефон.
  • Если на вашем телефоне появилось сообщение “приложение не установлено”, то выполните следующее:
  1. Экспортируйте параметры (в версии AAPS, уже установленной на телефоне)
  2. Удалите AAPS с телефона.
  3. Включите режим полета и выключите Bluetooth.
  4. Установите новую версию («app-full-release.apk»)
  5. Импортируйте настройки
  6. Снова включите Bluetooth и отключите режим самолета

Приложение установлено, но старая версия¶

Если вы успешно построили приложение, перенесли его на телефон и установили его, но номер версии остается прежним, то вы могли пропустить шаг обновления update your local copy.

Ничего из вышеперечисленного не сработало¶

Если вышеперечисленные советы не помогли попробуйте начать сборку приложения с нуля:

  1. Экспортируйте параметры (в версии AAPS, уже установленной на телефоне)
  2. Подготовьте пароль ключа и пароль хранилища. В случае, если вы забыле пароли, вы можете попытаться найти их в файлах проекта, как описано здесь ` _. Или просто создайте новый файл хранения ключей.
  3. Постройте приложение с нуля, как описано здесь.
  4. Когда вы успешно собрали APK, удалите существующее приложение с телефона, перенесите новое приложение на ваш телефон и установите.
  5. Импортируйте настройки

Сценарий худшего варианта¶

Если даже создание приложения с нуля не решает проблему, попробуйте полностью удалить Android Studio. Некоторые пользователи сообщили, что это решило проблему.

** Обязательно деинсталлируйте все файлы, связанные с Android Studio. * * Если вы не полностью удалите Android Studio со всеми скрытыми файлами, деинсталляция может привести к новым проблемам, а не к решению существующих. Руководства по полной деинсталляции можно найти в Интернете, напр. .

Установите Android Studio с нуля, как описано ниже: `_ и не обновляйте gradle.

© Copyright AndroidAPS community Revision e46f8d39 .

Источник

Оцените статью