Методы лечения различных ошибок в 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 BUILD FAILED Cannot find build.xml
Brett
Guest
I am using Gamemaker Studio v1.4.1657 because I am trying to test a project on Android TV and the newest 1.4 builds give an «Incorrect Android target» error when testing the APK on my Nvidia Shield TV. I can build successfully on the newer 1.4 builds but on v.1.4.1657 build this occurs:
BUILD FAILED
C:\Users\Badboybrenden\AppData\Local\gm_ttt_81655\gm_ttt_90926\build.xml:84: Cannot find C:\Users\Badboybrenden\AppData\Local\Android\Sdk\tools\ant\build.xml imported from C:\Users\Badboybrenden\AppData\Local\gm_ttt_81655\gm_ttt_90926\build.xml
I have been looking for a solution for hours and nothing works. If you guys can help I would appreciate it greatly.
Here is the full compile:
Monsi
Guest
Did you try clearing the cache?
Brett
Guest
Brett
Guest
santiagolemos123
Guest
I am using Gamemaker Studio v1.4.1657 because I am trying to test a project on Android TV and the newest 1.4 builds give an «Incorrect Android target» error when testing the APK on my Nvidia Shield TV. I can build successfully on the newer 1.4 builds but on v.1.4.1657 build this occurs:
BUILD FAILED
C:\Users\Badboybrenden\AppData\Local\gm_ttt_81655\gm_ttt_90926\build.xml:84: Cannot find C:\Users\Badboybrenden\AppData\Local\Android\Sdk\tools\ant\build.xml imported from C:\Users\Badboybrenden\AppData\Local\gm_ttt_81655\gm_ttt_90926\build.xml
I have been looking for a solution for hours and nothing works. If you guys can help I would appreciate it greatly.
Here is the full compile:
Brett
Guest
santiagolemos123
Guest
Brett
Guest
Member
Hi Brett, i am having the same problem here.
The exact same error with the wrong android target.
Could you tell me what API’s exactly you installed to make the compiled .apk work on nvidia shield TV? And what settings you used in the project?
Also, in the API i have the SDK, and also some other items in there. Two of them has to do with android TV. Which ones did you install?
I hope you can enlighten me
It’s greatly appreciated 
Brett
Guest
Hi Brett, i am having the same problem here.
The exact same error with the wrong android target.
Could you tell me what API’s exactly you installed to make the compiled .apk work on nvidia shield TV? And what settings you used in the project?
Also, in the API i have the SDK, and also some other items in there. Two of them has to do with android TV. Which ones did you install?
I hope you can enlighten me
It’s greatly appreciated 
Member
Hi Brett, thanks for getting back to me!
i appreciate it!
2) Then, i got settings for the game as follows (global game settings -> android):
www.jrxs.net/temp/global_game_settings_android.png
When i compile this, it runs on my android tablet, phone and also OUYA,
It installs on Android shield TV, but when i try to run it, i get the error that it’s not for Android TV target, but Android target.
3) If i expand the API23 node in SDK manager :
www.jrxs.net/temp/skd6.0_(API23).png
i see a bunch of stuff that can be installed also (looks like it has got to do something with android TV)
I only installed «SDK platform» and «google APIs». I also installed «Android TV ARM EABI v7a System image», but i dont think the latter is doing anything.
4) When i compile the game, i choose target «Andoid/Fire» option.
Did i forget something?
Especially with (3), do i need to install something more for android TV?
Brett
Guest
Hi Brett, thanks for getting back to me!
i appreciate it!
2) Then, i got settings for the game as follows (global game settings -> android):
www.jrxs.net/temp/global_game_settings_android.png
When i compile this, it runs on my android tablet, phone and also OUYA,
It installs on Android shield TV, but when i try to run it, i get the error that it’s not for Android TV target, but Android target.
3) If i expand the API23 node in SDK manager :
www.jrxs.net/temp/skd6.0_(API23).png
i see a bunch of stuff that can be installed also (looks like it has got to do something with android TV)
I only installed «SDK platform» and «google APIs». I also installed «Android TV ARM EABI v7a System image», but i dont think the latter is doing anything.
4) When i compile the game, i choose target «Andoid/Fire» option.
Did i forget something?
Especially with (3), do i need to install something more for android TV?
Источник
Методы лечения различных ошибок в 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).
Источник
Qt5 и Android
Вообщем не хочет собираться apk файл QTCreator выдает сообщение
Если зайти в «проект/android» и выполнить в терминале
а как сделать чтоб запускалось не в эмуляторе, а в сразу в смарте через adb?
Выставь в projectAndroidManifest.xml и project.properties targetApi меньше, чем у твоего телефона.
оказалось все на много проще, просто поменять с отладки на выпуск надо было
Подобная проблема только в SUSE 12.3
Из предыдущих сообщений становится понятно, что это косяк ant, и надо доустановить пакет ant-apache-regexp, я так и сделал, попутно установив все доступные опциональные пакеты ant, но проблема не ушла.
При попытке собрать проект в терминале, то выдаёт ошибку
То есть опять чего-то не хватает, только непонятно чего
Решено
Проблема была в некорректном определении JDK.
По умолчанию $JAVA_HOME указывала на JDK-1.5, после того, как указал путь на JDK-1.7, всё заработало.
с этим проблем уже давно нет
Выставь в projectAndroidManifest.xml и project.properties targetApi меньше, чем у твоего телефона.
Через Android SDK Manager скачал и уставил Android 2.3.3 (API 10) В проекты->запуск->конфигурации создания пакетов->SDK для android указал android-10
Но при запуске на android 2.3.3 только черный экран и статус бар, а на android 4x все нормально
Пробовал в AndroidManifest.xml добавить
Но все равно не чего не изменилось
Проблема была не с парсингом регэкспов, а с некорректным taskdef, как-то неправильно определялись java-классы. Это относилось к JDK-1-5. У меня на машине две версии JDK: 1.5 и 1.7. По умолчанию ant смотрел почему-то на 1.5. Это я выяснил при выводе команды
После чего поменял пути на JDK-1-7 и всё заработало. Пакеты собираются, запускаются и на эмуляторе и на устройстве. Одно НО. Рабочие пакеты собираются только в отладочной версии. При выборе в Creator`e опции «выпуск», пакеты всё равно собираются командой
Если самому в консоли в папке с проектом набрать
то пакеты собираются, но не устанавливаются на устройстве. В принципе, это не критично, но хотелось-бы разобраться.
Установил ant-optional,а после yum install ant-apache-regexp пишет
Setting up Install Process
No package ant-apache-regexp available.
И на apt-get install тоже самое.В чем проблема?
Ну ты мастер некропостинга.
Сейчас я включу телепатический модуль, узнаю твой дистрибутив (и его версию), схожу в репозиторий твоего дистрибутива, посмотрю, как же там называется аналогичный пакет, и напишу об этом здесь.
Погоди, что-то здесь не так. И вот что: почему я должен за тебя думать?
Пардон,я еще только начал осваивать систему,посему не в курсах,даже как спросить. Дистрибутив Ubuntu 12.10. А как посмотреть аналог пакета? Я что-то попытался,но только источники приложений нашел,это все,на что хватило моих скудных познаний и гуглмастерства.
Если бы это была убунта, команда yum install ant-apache-regexp просто не могла выполниться.
Там тебе уже ответили.
Правильно ответили. Просто не убрал галочку с анта при установке necessistas и до этого установил его apt-get. Решение проблемы — удалил ант со всеми зависимостями,скачал архив,распаковал и прописал в креаторе путь к нему. Еще добавил переменную ANT_HOME. На выходе теперь получается апкашник,работающий на устройстве
И превратил систему в слаку. Это не решение.
Источник