В приложении shell произошла ошибка андроид: Что делать, если приложение перестало работать? – Shell

Содержание

В приложении shell произошла ошибка что делать. Что делать, если в приложении «Сервисы Google Play» произошла ошибка

Com.android.phone — обозначение стандартного Android-приложения для звонков. Сообщения «В приложении com.android.phone произошла ошибка», «К сожалению, процесс com.android.phone был остановлен» свидетельствуют о неисправности приложения. Откуда берётся ошибка и как её исправить?

Почему появляется ошибка в приложении com.android.phone

Есть несколько причин появления ошибки с com.android.phone:

  1. Различные случайные сбои в приложении «Телефон».
  2. Переполнен кэш приложения «Телефон» или связанных с ним системных функций.
  3. Вирус может воздействовать на приложение «Телефон» и привести к его неисправности.
  4. Приложение может быть повреждено самим пользователем.
  5. Приложение «Телефон» не совместимо с какими-либо другими приложениями на устройстве, которые так или иначе используют функциональность телефона.

Способы исправления ошибки

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

Чистка временных фалов

Если проблема не решилась, переходим к следующему шагу.

Отключение функции синхронизации даты и времени

Если проблема всё ещё не решена, скорее всего, это вирус.

Удаление вирусов

Установите антивирусное ПО с Google Play Market и проведите глубокое сканирование устройства. Удалите все найденные вирусы.

Можно обойтись и без антивируса для Android. Подключите смартфон к компьютеру в режиме USB-накопителя. И просканируйте жёсткий диск устройства компьютерным антивирусом. Благодаря тому, что исходный код мобильных и настольных вирусов похож друг на друга, стационарный антивирус может отыскать и удалить вредоносное ПО на вашем мобильном устройстве.

Hard Reset

Если на устройстве нет важных данных, либо вы готовы сохранить их где-нибудь, попробуйте сделать сброс до заводских настроек. Полный сброс параметров удалит все данные, а заодно с ними и вирус. Называется это Hard Reset и делается следующим образом:

Сделать сброс настроек можно через Recovery Mode. Чтобы включить режим Recovery, выключите устройство и зажмите кнопки включения и убавления громкости. Держите их до тех пор, пока на экране не появится логотип производителя. У некоторых устройств Recovery включается другим способом, узнайте это в интернете конкретно для своей модели смартфона или планшета. В меню Recovery найдите пункт wipe data (либо Clear Data, либо что-то подобное). Нажмите на него, затем нажмите Yes и поставьте галочку на Delete User Data. И перезагрузите устройство.

Запустить сброс настроек можно в режиме Recovery Mode: выберите wipe data/factory reset

Перепрошивка

Итак, если и после удаления вирусов программа com.android.phone всё ещё выдаёт ошибку, то можете попробовать перепрошить устройство. Для этого скачайте с официального сайта последнее обновление системы для вашего устройства, поместите скачанный zip-архив в корневую папку устройства и включите Recovery Mode.

В Recovery Mode нажмите Install zip from sdcard (либо нечто похожее в зависимости от модели устройства; более конкретную инструкцию по перепрошивке можно найти на сайте производителя вашего устройства). Затем следуйте инструкциям на экране (обычно нужно просто нажимать кнопку «Ок»), не забудьте поставить галочку на Wipe data, чтобы удалить данные с устройства, иначе ошибки могут остаться.

Если перепрошивка устройства неприемлема для вас, а ошибка никаким другим способом не подлежит исправлению, попробуйте установить «звонилку» с Google Play. В маркете море вариантов, подберите себе по вкусу и установите.

Видео: как исправить ошибку в com.android.phone на примере Lenovo A328

Что делать, чтобы проблема больше не появлялась

Не устанавливайте на устройство приложения из ненадёжных источников, чтобы не подцепить вирус. Смартфон или планшет не стоит захламлять бесполезными приложениями, так как все они оставляют после себя не удалённые временные файлы и неочищенный кэш, что нагружает и вредит устройству.

Используйте программу CCleaner или похожую, чтобы очищать кэш и ненужные файлы.

Относитесь бережно к своему мобильному устройству, не засоряйте его лишними приложениями и постоянно очищайте кэш приложений и удаляйте временные файлы. И тогда ошибка в com.android.phone больше вас не коснётся.

С ошибками системных приложений рано или поздно сталкивается почти каждый пользователь устройств на Андроиде. И одна из самых распространенных и трудноустранимых — ошибка в приложении Сервисы Google Play. Чаще всего она возникает после каких-либо действий пользователя, но иногда — спонтанно и неожиданно, как бы из ниоткуда.

Сегодня поговорим о причинах ошибки приложения Сервисы Google Play и о том, что делать, чтобы ее устранить.

Что такое Сервисы Google Play

Методы устранения ошибки: от простого к сложному

Решения приведены в порядке простоты выполнения. Если одно не помогло, переходите к следующему. Либо сразу делайте то, что считаете наиболее подходящим в вашей ситуации.

Настройка даты и времени

Неправильные установки даты и времени на устройстве приводят к сбоям запуска многих приложений, не только Сервисов Гугл Плэй. Также при этом часто возникают проблемы с доступом на интернет-ресурсы.

Чтобы исправить ошибку, запустите «Настройки» (Параметры) на Андроиде, откройте раздел «Система» и подраздел «Дата и время». Установите нужные показатели вручную или синхронизируйте время по сети.

Очистка кэша и данных Сервисов Google Play и связанных с ним приложений

Запустите «Настройки», зайдите в раздел «Устройство» и «Приложения». Найдите среди них:

  • Сервисы Google Play.
  • Магазин Play Маркет.
  • Google Services Framework.

Поочередно откройте их свойства, нажмите «Остановить», потом «Очистить кэш» и «Стереть данные». Если неполадка возникла после обновления этих приложений, удалите обновления. Перезагрузите гаджет.

Перенос Сервисов Google Play с SD-карты в память устройства (root)

Если на вашем телефоне или планшете часть приложений размещена на карте памяти, не исключено, что туда попали и Сервисы. Если это так, перенесите их обратно в память устройства — в папку системных либо пользовательских программ. Используйте для этого любую утилиту, которая имеет функцию переноса программ между накопителями, например, Link2SD , Files To SD Card , Переместить в SDCard или аналоги.

Удаление последних установленных приложений

Если сбой возник после того, как вы установили одно или несколько новых приложений, попробуйте поочередно деинсталлировать их. После каждого удаления перезагружайте устройство.

Проверка на вирусы и чистка файла hosts

Неожиданная, спонтанно возникающая ошибка Сервисов Google Play и других системных приложений может быть признаком вирусного заражений устройства. Особенно если она сопровождается такими характерными симптомами, как:

  • слишком быстрый разряд аккумулятора;
  • необъяснимые отключения функций, чаще всего связанных с безопасностью, а также невозможность изменить настройки системы;
  • недоступность некоторых ресурсов в Интернете (например, почты, социальных сетей), рекламные баннеры на веб-страницах, перенаправление на другие сайты;
  • реклама на рабочем столе устройства, не связанная с приложениями;
  • самопроизвольная установка ненужных вам программ и невозможность их удалить;
  • скрытые звонками и SMS-сообщения на неизвестные номера;
  • исчезновение средств с баланса телефона и электронных кошельков;
  • внезапное удаление или нарушение работы антивируса.

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

Некоторые вредоносные программы вносят записи в файл hosts, где, как и на компьютере, хранятся IP-адреса и сопоставленные им имена веб-сайтов. Эти записи тоже могут стать причиной ошибки Сервисов Google Play, поэтому после сканирования на вирусы, независимо от того, были они найдены или нет, вам следует проверить hosts.

Доступ пользователя к файлу hosts возможен только на устройствах, где получен root. Кроме того, вам понадобится приложение-проводник с доступом к системным каталогам, вроде Root Explorer или Total Commander . Нужный файл находится в папке /etc и не имеет расширения. Для открытия и внесения в него правок понадобится любой текстовый редактор.

Файл hosts состоит из блока комментариев, строчки которого начинаются со знака #, и блока записей. Комментарии ни на что не влияют — это просто справочная информация, а записи указывают устройству, по какому IP-адресу искать в Интернете тот или иной сайт.

Изначально во втором блоке hosts присутствует единственная запись — 127.0.0.1 localhost, которая означает, что этот IP принадлежит самому девайсу. И все сайты, сопоставленные 127.0.0.1, он будет искать на самом себе.

Если вы видите в блоке записей что-то, помимо «127.0.0.1 localhost», удалите это.

После сохранения файла и перезапуска устройства ошибка Сервисов Гугл Плэй часто исчезает.

Удаление и повторное создание аккаунта Google

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

Переустановка Сервисов (root)

Переустановка помогает исправить ошибку, которая возникла после обновления Сервисов Gogle Play или установки неподходящей версии после ручного удаления. Скачивать подходящий вашему девайсу файл лучше отсюда , так как по ссылке собраны старые, заведомо стабильные версии (как определить свою, смотрите в разделе о причинах ошибки).

После скачивания apk-файл приложения следует поместить в каталог /system/app (/system/priv-app) или /data/app, используя тот же Root Explorer или Total Commander. Далее не забудьте дать ему разрешение на чтение и запись (на Root Explorer это делается касанием кнопки, обведенной рамкой на скриншоте, чтобы она переключилась с R/O на R/W) и запустите установку.

После перезагрузки устройства, скорее всего, ошибка вас больше не побеспокоит.

Кстати, если проблема возникла после обновления Сервисов, она может повториться, как только девайс скачает новую версию из Play Маркета. Поэтому, возможно, вам придется отключить установку его обновлений. Во всяком случае до тех пор, пока не выяснится истинный виновник ситуации.

Сброс на заводские настройки и перепрошивка

Если все ваши попытки устранить ошибку оказались безуспешными, остаются последние средства — сброс Android на заводские настройки и перепрошивка.

Сброс — довольно действенное решение при всевозможных проблемах с системой, но он не окажет желаемого эффекта на телефонах и планшетах с root. Кроме того, вы потеряете личные файлы и настройки. Прибегайте к нему только на нерутированных гаджетах и только тогда, когда испробовали все более простые способы.

Функция сброса доступна через приложение «Настройки» — раздел «Система» — «Восстановление и сброс», а также через меню Recovery, методика открытия которого обычно приведена на сайтах мобильных девайсов различных марок.

Перепрошивка устройства на Андроиде равнозначна переустановке операционной системы на компьютере, то есть это самое радикальное решение из всех, что есть. Для нее не имеет значения, был на устройстве рут или нет. После перепрошивки вы получите девственно чистую систему, ошибки останутся в прошлом, но настраивать и обживать ее вам придется заново.

Как показывает многолетний опыт, очень часто обладатели устройств с ОС Android сталкиваются с различными ошибками и проблемами, часть из которых попросту вводит в ступор некоторых пользователей. Например, довольно распространенный случай, когда устройство показывает уведомление, произошла ошибка android process acore.

Как исправить проблему? Что делать начинающему пользователю, если он только недавно приобрел телефон и не знает всех тонкостей своего аппарата? Почему произошла данная ошибка? В данном материале мы ответим на все вопросы, которые связаны с данной проблемой. Вы сможете в будущем не только быстро вернуть к жизни свой смартфон, но и предотвратить появление таких ошибок.

По каким причинам случается эта ошибка

Сначала нужно понять, почему эта ошибка возникает на вашем телефоне. Причем стоит отметить, что она может появляться практически в любой версии операционной системы Android, не зависимо от производителя.

И так, вот список возможных причин появления этой системной ошибки:

  • На вашем телефоне удалены системные файлы или папки, необходимые для корректной работы операционной системы;
  • Операционная система не может стабильно и корректно работать из-за отключения одного из системных приложений;
  • На устройстве инсталлировано несколько программ или виджетов, у которых схожие функции, конфликтующие между собой, например, синхронизация данных из контакт-листа или просмотр прогноза, почтовые клиенты.

Как исправить ошибку android process acore: 2 способа

Даже если у вас на устройстве появилась подобная проблема, не стоит сразу же впадать в панику и идти в магазин за новым телефоном. Также не рекомендуем вам обращаться в сервисный центр и просто так отдавать денежные средства. Вы и сами сможете исправить эту проблему, даже если не так давно приобрели устройство с операционной системой Android. Мы условно разделили список решений на две категории, начиная от обычных пользователей, которые только начали работать с этой ОС, заканчивая продвинутыми пользователями.

Способ 1 — для начинающих пользователей

Как показывает практика, эта ошибка в основном возникает при работе со списком контактов на вашем смартфоне. Например, вы пытаетесь добавить новый контакт в записную книгу или стереть запись, редактировать. Чтобы исправить ошибку, вам нужно будет сделать следующее:

  • Зайдите в «Настройки» и выберите вкладку «Приложения».
  • Найдите вкладку «Все», а затем «Хранилище контактов».
  • Теперь найдите пункт «Стереть данные» и нажмите на него. Внимание! Все ваши контакты будут удалены с мобильного телефона, однако ошибка, скорее всего, исчезнет. Если ранее вы создавали отдельные копии в формате vCard или синхронизировали телефонную книгу в сервисах Google, то восстановить все данные будет легко.

Еще одна причина, по которой может появляться эта ошибка – некорректная работа «Хранилища календаря» . Для исправления ошибки сделайте следующее:

  • Зайдите в «Настройки» вашего телефона.
  • Выберите пункт «Приложения» и во вкладке «Все» найдите «Хранилище календаря». Нажмите эту кнопку и если служба была отключена, выберите «Включить».

Также проблема иногда возникает при инсталляции приложений, которые оптимизируют беспроводные сети Wi-Fi. В данном случае рекомендуем вам просмотреть полный список всех установленных программ на вашем смартфоне, определить, какие из них предназначены для оптимизации беспроводных сетей и по очереди удалить.

Один из крайних методов – это возврат к заводским настройкам . Только имейте ввиду, что все данные будут полностью удалены с вашего телефона, как личные данные, так и все приложения, как будто вы только что приобрели телефон в магазине.

Способ 2 — для продвинутых пользователей

Если вы уверенный пользователь Android, и работали с файловой системой, встроенными службами и виджетами, то при появлении сообщения, что произошла ошибка android process acore, можете воспользоваться способом, который описан здесь. Исправить проблему можно редактированием системного файла. Для этого нужно сделать следующее:

  1. В файловой системе пройдите по следующему пути: /system/csc/others.xml и откройте его любым встроенным редактором.
  2. Найдите в файле строчку TRUE и поменяйте значение TRUE на FALSE .
  3. Как только значение будет изменено, сохраните файл и перезапустите устройство. Рекомендуем вам создавать резервные копии редактируемых файлов.

В целом же можно сделать вывод, что данная ошибка не критична для пользователя и может быть устранена в несколько кликов. Помните, что к последнему методу с откатом данных нужно прибегать только в том случае, если все описанные методы в статье не устраняют проблему. При откате удаляется приложение, автоматически генерирующее ошибку, поэтому она больше не появляется. Откат данных можно сделать как при помощи стандартного меню операционной системы Android, так и специальными клавишами. Более детально читайте в отдельной статье, ссылка на которую приведена выше в данном материале. Если у вас остались какие-либо вопросы по этой проблеме – оставляйте свои комментарии и наши специалисты обязательно помогут вам решить их!

У многих пользователей Андроида китайского производства, часто возникают разного рода ошибки. Одной из самых частых считается «В приложении Настройки произошла ошибка». Данный сбой является не совсем стандартным, так как в отдельных случаях может блокировать доступ в меню настроек устройства. Давайте разберемся, каким образом можно исправить эту проблему.

Причины сбоя

Чаще всего проблема появляется на смартфонах и планшетах, где еще стоят устаревшие ОС, застывшие где то в версиях 4. 2.2, 4.4.2, 4.4.4. Более стабильны в этом плане версии 5.1 (и выше), 6.0 (и выше). Как таковых, причин бага может быть множество. Криво установленное приложение, содержит битые файлы и дает сбой. Глобальный баг в прошивке, из-за которого вы не сможете запустить системные процессы и программы (камера, батарея, календарь, телефонная книга и др.). Отдельно стоит говорить про вирусную активность на Android и наличие в нем мусора (остаточных файлов).

Ошибка в приложении «Настройки» на Андроид

В зависимости от модели девайса и версии операционки, сообщение может отличаться. Например, на Samsung и Sony выдает сообщение «Приложение Настройки остановлено», а китайские модели могут выдавать «Unfortunately, Settings has stopped».

Исправляем сбой Настроек в Андроиде

В любом случае, для решения бага, вам нужно выполнить ряд очисток и сбросить некоторые службы в системе. Выберите из списка советов, наиболее подходящую вам ситуацию. Для начала следует сделать простые шаги, этакие полумеры.

Перед всеми действиями рекомендую проверить девайс на вирусы, используйте актуальные версии антивирусов (Dr.Web, AVG, Kaspersky, ESET и др). Также примените системный инструмент очистки — кэша и мусорных файлов. В новых версиях ОС, для очистки есть встроенная опция, либо можно загрузить специальный софт — Master Cleaner, например.


Заключение

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

Популярные страницы

С недавнего времени, многие пользователи яблочной продукции столкнулись с появлением зависшего на экране требования подключиться к iTunes, также вверху всплывает надпись support.apple.com/iPhone/restore. Еще этот момент называют «Бесконечный режим восстановления», так как. ..

HTC One A9 — попытка компании вернуть

В Google Nexus 6P загрузчик не разблокировать без

Множество пользователей смартфонов с операционной системой Android, сталкивались с такой проблемой — как исправить ошибку android.process.acore на Вашем смартфоне. У неподготовленного пользователя или у новичков, это вызывает панику, и они не знают, что делать, а некоторые даже преждевременно «хоронят» свои телефоны. Но «не так страшен черт, как его малюют».

Чтобы исправить ошибку android.process.acore, нужно сначала найти корни проблемы. Анализируя различные ресурсы и личный опыт, мы решили в рамках данной статьи описать наиболее частые причины возникновения такого рода ошибки.

Надеемся, что многим, данная информация поможет без паники решить проблему.

Причины появления проблемы

Есть 3 основных причины появления ошибки android .process.acore:

  • отключено системное приложение, из-за чего Android не может нормально функционировать;
  • одновременно установлено несколько приложений со сходными функциями, которые некорректно синхронизируются со списком контактов, календарем или другим системным приложением;
  • удалены важные системные файлы .

Методы устранения ошибки

Существует несколько методов, которые, возможно, помогут исправить ошибку android.process.acore на Вашем девайсе. Эти методы рассчитаны как на обычного, так и на опытного пользователя. Внимательно ознакомьтесь со всеми вариантами и выберете тот, который Вы сможете осуществить. Ни в коем случае не пытайтесь своими силами решить проблему путем изменения системных файлов, если Вы не профессионал.

Решение проблемы для обычных пользователей

Чаще всего ошибка возникает при работе с телефонной книгой, при попытке добавить, сохранить, изменить или удалить какой-либо контакт. Лечение: пытаемся зайти в Настройки/../Хранилище контактов (называться может по-разному, но суть понятна) и находим опцию – «Стереть данные». Во многих случаях помогает исправить ситуацию, но вы уничтожаете весь список контактов. Тут уж ничего не поделаешь, придется жертвовать. Для тех, у кого есть возможность синхронизации с аккаунтом в Google, данный способ пройдет безболезненно.

Одной из причин возникновения ошибки android.process.acore может быть отключение Хранилища календаря или другие отключенные программы. Для того, чтобы проблема ушла, перейдите в Настройки/Приложения, там находим дополнительное меню и нажать на «Сбросить настройки». Этот метод, конечно, если он сработает, хорош тем, что личные данные не теряются при сбросе.

Исправить ошибку android.process.acore, можно путем удаления приложений для оптимизации беспроводной сети Wi-Fi , в некоторых случаях проблема исчезает.

Действенным методом является также «Откат к заводским параметрам». Это действие отменит все индивидуальные настройки пользователя, но это не так критично, как потеря контактов. Для справки прочтите инструкцию к пункту Recovery для вашей модели.

Устранение неполадки для опытных пользователей

Еще один способ борьбы с проблемой можно порекомендовать для опытных пользователей Android . Он заключается в изменениях системного файла:

/system/csc/others. xml. В нем находится строка:

которую нужно отредактировать так, чтобы получить следующее:

Еще раз напомним, что данный способ ТОЛЬКО для опытных!

Если Ваше устройство «рутировано», вполне возможно, что Вы провели неудачную чистку системных приложений и файлов, в следствии чего произошла ошибка android.process.acore. В этом случае Вам придется искать в интернете удаленные файлы именно для используемой версии прошивки Android , возвращать их на место и выставлять соответствующие права.

Также для устройств с root-правами решением проблемы послужит включение, возможно, отключенного ранее процесса logsProvider 2.0.d через Titamium backup.

Крайние меры

И, наконец, когда ничего не помогает, то прибегают к радикальным методам, которые заключаются в полной очистке памяти аппарата с потерей всех данных. Таким образом из системы удаляются приложения, которые генерировали ошибку android.process.acore.

Как бы это не было печально, но на сегодняшний день буквально каждый второй обладатель смартфона или планшета на платформе Андроид столкнулся с неприятным нюансом данной операционной системы, а именно – ошибкой «android. process.acore». В большинстве случаев пользователи не знают что это и как это исправить, поэтому сразу паникуют. Именно поэтому мы с вами подробно рассмотрим эту проблему и пути ее решения.

Сперва необходимо определить, откуда «растут ноги» у нашей ошибки. И так, представляем вашему вниманию причины, по которым чаще всего на Андроид устройствах появляется так называемая ошибка android.process.acore:
Причина первая. Ваш Андроид не в состоянии правильно функционировать из-за отключенного системного приложения.
Причина вторая. Если вы одновременно установили на свой смартфон или планшет несколько приложений, которые имеют схожие функции и они не правильно синхронизируются с, к примеру, календарем, списком контактов и другими системными приложениями – все это может привести к вышеупомянутой ошибке.
Причина третья. Если вы по ошибке удалили важные системные файлы, то ошибки android.process.acore не избежать в любом случаи.

Как же устранить ошибку?

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

Решение первое. Если ошибка у вас возникла в связи с некорректной работой телефонной книги, а именно при добавлении, сохранении или изменении и удалении какого-либо контакта, вам необходимо зайти в Настройки – далее База данных контактов – далее команда «Стереть информацию» Чаще всего это позволяет избавиться от ошибки. Единственный минус такого метода – это то, что мы стираем записную книгу. Если вы хотите обойтись без потерь, перед началом исправления ошибки проведите синхронизацию с вашим аккаунтом Google.
Решение второе. Возможно, ошибка возникает в связи с тем, что на вашем устройстве отключены важные программы. Для решения это проблемы вам необходимо сбросить настройки в дополнительном меню настроек приложений. С ходе обнуления настроек ваши данные не пострадают.
Решение третье. Если вы уже попробовали предыдущие 2 способа, но ошибка никуда не делась, попробуйте удалить приложения, предназначенные для оптимизации Wi-Fi.
Решение четвертое. Самый радикальный и верный способ, как при возникновении ошибки android.process.acore, так и других ошибок, является возвращение к заводским настройкам вашего устройства.

Facebook

Twitter

Вконтакте

Одноклассники

Google+

Самый сложный Android-троянец | Securelist

Недавно нам на анализ пришло приложение для ОС Android, при первом взгляде на которое стало ясно – это что-то необычное. Все строки DEX файла были зашифрованы, а код обфусцирован.

Файл оказался многофункциональным троянцем, который может отправлять SMS на премиум-номера; скачивать и устанавливать на зараженное устройство другие вредоносные программы и/или рассылать их по Bluetooth; выполнять удаленные команды в консоли. Сейчас эта вредоносная программа детектируется «Лабораторией Касперского» как Backdoor.AndroidOS.Obad.a.

Как правило, вирусописатели стараются максимально запутать код своего творения, чтобы усложнить работу антивирусным экспертам, но такой уровень маскировки, как у Obad.a, редко встречается среди мобильного вредоносного ПО. Однако особенностью нового троянца была не только полная обфускация кода.

Особенности троянца

Создатели Backdoor.AndroidOS.Obad.a нашли ошибку в популярной программе dex2jar, которая обычно используется аналитиками для конвертирования APK-файла в более удобный для работы формат JavaArchive (JAR). Обнаруженная злоумышленниками уязвимость  нарушает процесс конвертации Dalvik байт-кода в Java байт-код, что в итоге затрудняет статический анализ троянца.

Также злоумышленниками была найдена ошибка в OCAndroid, связанная с обработкой AndroidManifest.xml. Этот файл встречается в каждом Android-приложении и используется для описания структуры приложения, определения параметров его запуска и т. д.  Вирусописатели модифицировали AndroidManifest.xml таким образом, что тот не соответствовал заданному Google стандарту, но при этом, благодаря найденной уязвимости, правильно обрабатывался на смартфоне. В результате динамический анализ троянца крайне затруднен.

Создатели Backdoor.AndroidOS.Obad.a использовали еще одну неизвестную ранее ошибку в ОС Android, которая позволяет вредоносному приложению пользоваться расширенными правами DeviceAdministrator, но при этом отсутствовать в списке приложений, обладающих такими правами. В результате удалить со смартфона вредоносную программу, получившую расширенные права, невозможно.

Наконец, Backdoor.AndroidOS.Obad.a не имеет интерфейса и работает в фоновом режиме.

Анализ кода

В этом вредоносном приложении все внешние методы вызываются через рефлексию, при этом все строки (в том числе имена классов и методов) зашифрованы.

Каждый класс имеет локальный метод-декриптор, который получает требуемую для расшифровки строку из локально объявленного массива байт. Все строки «спрятаны» в этот массив.

Самые важные строки, содержащие адреса командного сервера, проходят дополнительный процесс расшифровки. Для этого троянец сначала проверяет наличие доступа в интернет, а затем загружает страницу facebook.com и, вытащив некий элемент кода этой страницы, использует его как ключ для расшифровки. Таким образом Backdoor.AndroidOS.Obad.a расшифровывает адреса командный серверов только в боевых условиях – при  наличии доступа в интернет. Кроме того, наличие этой функции затрудняет анализ зловреда.

Часть строк дополнительно зашифрована. Локальный декриптор получает закодированную строку в Base64 и раскодирует ее. Раскодированная строка расшифровывается сначала операцией XOR с MD5 ключа, затем дополнительно с MD5 от строки «UnsupportedEncodingException». Чтобы получить MD5 ключа, тот же локальный декриптор расшифровывает еще одну строку, от которой и считается MD5. Таким образом защищены ключевые строки, например, имя функции sendTextMessage.

В результате анализа нам удалось расшифровать все строки:

А результаты расшифровки позволили нам восстановить алгоритм работы приложения.

Получение прав

Сразу после запуска приложение пытается получить права DeviceAdministrator.

Как мы уже писали выше, одна из особенностей этого  троянца состоит в том, что в случае успешного получения расширенных прав, вредоносное приложение невозможно будет удалить: использование неизвестной ранее ошибки в ОС Android позволяет вредоносному приложению с расширенными правами отсутствовать в списке приложений, обладающих правами DeviceAdministrator.

Мы уже сообщили компании Google об уязвимости в работе с DeviceAdministrator в ОС Android.

Расширенные права DeviceAdministrator могут использоваться троянцем для кратковременной (не более 10 секунд) блокировки экрана устройства. Как правило, это происходит после подключения к бесплатному Wi-Fi или после активации Bluetooth, который может использоваться зловредом для передачи своих копий и других вредоносных приложений на находящиеся поблизости устройства. Возможно, таким образом Backdoor.AndroidOS.Obad.a пытается помешать пользователю обнаружить вредоносную активность.

Также троянец пытается получить права суперпользователя (root), выполняя команды «suid».

Связь c хозяевами

Информация о том, были ли получены права суперпользователя, будет передана на командный сервер. Получение прав root может дать злоумышленникам преимущества при удаленном выполнении команд в консоли.

Для передачи сведений о зараженном устройстве и проделанной работе Backdoor.AndroidOS.Obad.a использует активное в данный момент подключение к интернету. Если сеть не найдена, троянец ищет ближайшие сети Wi-fi, не требующие авторизации, и подключается к одной из них.

После первого запуска вредоносное приложение собирает и передает на командный сервер с адресом androfox.com  следующую информацию:

  • MAC-адрес Bluetooth  устройства
  • Имя оператора
  • Номер телефона
  • IMEI
  • Баланс счета
  • Получены или нет права DeviceAdministrator
  • Получены или нет права суперпользователя
  • Местное время

Собранная информация отправляется на сервер в виде шифрованного JSON-объекта.

Эта информация передается на актуальный на время связи командный сервер и при каждом последующем соединении. Кроме того, зловред сообщает хозяину о своем состоянии: приложение отправляет  на командный сервер актуальные таблицу премиум-номеров и префиксов для отправки SMS (параметр «aoc»), список  заданий («task») и список C&C серверов. При первом сеансе связи с командным сервером отправляется пустая таблица и список адресов командных серверов, расшифрованных описанным выше алгоритмом. В ходе сеанса связи с C&C троянец может получать обновленную таблицу премиум-номеров и новый список адресов C&C.

С сервера в ответ приходит другой JSON-объект, который после расшифровки может выглядеть так:

{"nextTime":1,"conf":{"key_con":"oKzDAglGINy","key_url":"3ylOp9UQwk","key_die":"ar8aW9YTX45TBeY","key_cip":"lRo6JfLq9CRNd6F7IsZTyDKKg8UGE5EICh5xjzk"}}

nextTime — следующее время обращения к серверу.

conf — конфигурационные строки.

Конфигурационные строки могут содержать указания на изменения C&C, таблицы номеров с префиксами и ключами для отправки SMS и новые задания с параметрами. Кроме того, в conf может передаваться ключ для шифровки трафика (key_cip).

Злоумышленники могут управлять троянцем и с помощью SMS-сообщений: конфигурационные строки могут также содержать строки-ключи, которые троянец будет искать во входящих SMS для выполнения определенных действий (key_con, key_url, key_die).

Каждое входящее SMS-сообщение проверяется на наличие одного из ключей. Если найден ключ — выполняется соответствующее действие:

key_con ‑ немедленное подключение к серверу.

key_die ‑ удаление заданий из базы данных.

key_url ‑  смена C&C сервера; за ней в тексте SMS должен идти новый адрес. Таким образом можно создать новый C&C сервер и отправить его адрес по SMS с соответствующим ключом key_url, после чего все зараженные устройства станут работать с новым сервером.

Если в conf найден ключ на отправку SMS, то троянец отправляет сообщение на полученные c С&C номера. Таким образом для получения команды на отправку платных SMS даже не нужно наличие интернета:

Команды сервера

С C&C сервера троянцу приходят команды, которые заносятся в базу. Каждая запись команды в этой базе содержит порядковый номер команды, указанное сервером время ее выполнения и параметры.

Список команд:

  1. Отправить SMS. В параметрах содержится номер и текст. Ответные SMS удаляются.
  2. Пинг.
  3. Получить баланс по USSD.
  4. Выступить в качестве прокси (отправить указанные данные на указанный адрес и вернуть ответ).
  5. Подключиться к заданному адресу (кликер).
  6. Скачать и установить файл с сервера.
  7. Отправить на сервер список установленных на смартфоне приложений.
  8. Отправить информацию об указанном командным сервером установленном приложении.
  9. Отправить на сервер контакты пользователя.
  10. Удаленный Shell. Выполняет указанные злоумышленником команды в консоли.
  11. Передать файл всем обнаруженным Bluetooth-устройствам.

Набор команд для Obad.a позволяет зловреду распространять файлы по Bluetooth. С сервера приходит адрес файла, который должен быть скачан на зараженное устройство. После скачивания файла по очередной команде с сервера вредоносное приложение определяет ближайшие устройства с включенным Bluetooth и пытается передать им загруженный файл.

Несмотря на такие внушительные возможности, Backdoor.AndroidOS.Obad.a не очень распространен. По данным KasperskySecurityNetwork за три дня наблюдений на его заблокированные установки приходится не более 0,15% всех попыток заражения мобильных устройств различными вредоносными программами.

В завершение этого обзора хотим отметить, что по своей сложности и по количеству использованных неопубликованных уязвимостей Backdoor.AndroidOS.Obad.a  ближе к вредоносному ПО под Windows, чем к другим троянцам под Android. А это значит, что стремительно растет не только количество Android-зловредов, но и их сложность.

Как добраться до bluestacks 4?



Я хотел бы подключиться к эмулятору android на bluestacks 4 с помощью adb. но у меня есть ошибка с adb.exe -s emulator-5554 shell

проверка приборов.

$ adb.exe devices
List of devices attached
BH901...      device
CB512...      unauthorized





emulator-5554   device

как только я выключу окно bluestacks, emulator-5554 будет скрыт от результата вышеприведенной команды. таким образом, я думаю, что emulator-5554 означает bluestacks.

затем commnad, как показано ниже, чтобы использовать adb.

$ adb.exe -s emulator-5554 shell
error: closed

но, как вы знаете, произошла ошибка.

android adb bluestacks
Поделиться Источник k23j4     22 января 2019 в 23:03

2 ответа


  • Android игр, не работающих на Bluestacks

    Я пытаюсь играть в android игр на ПК, используя последнюю автономную версию Bluestacks. Некоторые игры, такие как temple run, прекрасно работают в Bluestacks. Но еще некоторые игры, такие как Candy Crush Saga, Dot и т. д.,не работают и не могут быть установлены на bluestacks. Я искал его в google….

  • Как «shake» в Bluestacks?

    Одно из моих приложений должно использовать датчик движения в моем Android cell phone. Конечно, я не могу встряхнуть свой компьютер, используя BlueStacks. Интересно, как я могу достичь функции shake в среде BlueStacks? Я попробовал стрелки влево-вправо, но, похоже, это вообще не работает.



28

Во-первых, в Bluestacks перейдите в Настройки — > Настройки — > включить Android Debug Bridge (ADB). Подобный этому:

В этот момент Bluestacks включает свою функциональность adb и открывает доступ к localhost на порту 5555 (порт по умолчанию)

Итак, в командной строке введите adb connect localhost:5555 , и вы должны быть готовы к работе.

Поделиться jackz314     23 апреля 2019 в 05:18



3

И у меня есть тест bluestack 4 в windows 10 и включить разрешение adb в настройках bluestacks 4. Это работает на меня.

Поделиться nooper     12 апреля 2019 в 11:33


Похожие вопросы:


MoSync IDE: как запустить apk в Bluestacks?

Я пробую MoSync IDE (специальная версия Eclipse для разработки кроссбраузерных Android и iOS приложений с HTML/Javascript). В настоящее время он использует стандартный эмулятор SDK Android, который…


Руководство по настройке fiddler и Bluestacks

Кто-нибудь знает, как настроить fiddler для мониторинга/обнюхивания трафика с bluestacks ? Я видел, как другие упоминали, что это можно сделать, но для этого нужно какое-то руководство по настройке…


Как запустить файл apk на Mac через Bluestacks

Я использую Bluestacks в качестве виртуального устройства для запуска файла apk на своем ноутбуке. На Windows это довольно просто. Мне просто нужно установить Bluestacks, а затем дважды щелкнуть. ..


Android игр, не работающих на Bluestacks

Я пытаюсь играть в android игр на ПК, используя последнюю автономную версию Bluestacks. Некоторые игры, такие как temple run, прекрасно работают в Bluestacks. Но еще некоторые игры, такие как Candy…


Как «shake» в Bluestacks?

Одно из моих приложений должно использовать датчик движения в моем Android cell phone. Конечно, я не могу встряхнуть свой компьютер, используя BlueStacks. Интересно, как я могу достичь функции shake…


ADB Bluestacks-Connect 2 PC

У меня есть два PCs, скажем, PC1 и PC2. У меня есть Bluestacks, установленный в PC1, и я Android Studio, установленный в PC2. Поэтому мой вопрос таков: можно ли подключиться к эмулятору Bluestacks…


Android Studio ошибка подключения к Bluestacks

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


начните bluestacks с Process.StartInfo.Arguments

Я хочу запустить bluestacks с помощью приложения. Я могу запустить bluestacks, но не могу запустить приложение. как я могу исправить аргументы процесса using (Process proc_blstck = new Process()) {…


Ремонт webcam в BlueStacks

так что прямо сейчас моя камера bluestacks не будет подключаться ни к чему, показывающему ошибку can not connect to the camera . Через некоторое время, глядя вокруг, я сделал найдите BlueStacks…


Как я могу подключить Flutter в VS-коде с эмулятором BlueStacks 4?

Как я могу подключить Flutter с VS-кодом к эмулятору BlueStacks 4. Я не хочу использовать Android Studio, потому что это плохое программное обеспечение. Кто-нибудь может мне помочь, пожалуйста?

Что делать, если произошла ошибка com android vending

29 июня, 2017

Автор: Maksim

Как и всему в этой жизни, Андроиду свойственно ломаться. Но не стоит паниковать или сразу отправляться в сервис, отдавая свои кровные за пустяковую нестыковку в программном обеспечение.

Частенько, вы самостоятельно можете решить возникшую проблему в пару шагов. И ошибка com.android.vending — прекрасный пример. Что это за штука, из-за чего она может произойти и, самое главное, что делать, чтобы её устранить — узнаем прямо сейчас.

Почему может произойти ошибка com.android.vending

com.android.vending — это программная ошибка, возникающая при перегрузке системы или проблем Play Market (Google Play). Возможные вариации ошибки: «Процесс com.android.vending завершен», «неожиданная остановка процесса com.android.vending» и т.п.

Что делать, чтобы устранить

Для начала попробуйте перезагрузить телефон, сменить гугл-аккаунт (зайдите на YouTube, выйдете из своего аккаунта, создайте новый профиль и войдите через него) или с помощью изменения версии Play Market на более раннюю. Последнее можно выполнив пройдя несколько следующих шагов:

Заходите в «настройки» телефона — приложения — находите «Play Market» и нажимаете «Удалить обновления».

Заходим в раздел «приложения»

Нажимаем кнопку «Удалить обновления»

Если вышеперечисленные способы вам не помогли, то воспользуйтесь следующей инструкцией:

Для исправления этой проблемы, во-первых, нам понадобятся Root права на ваш Android. ВНИМАНИЕ! При получении root (рут)–прав вы теряете гарантию на устройство, то есть не сможете отдать его по гарантии в сервисный центр. Ни в коем случае не пытайтесь самостоятельно настраивать системные файлы без инструкций или должного осведомления. Нарушение стандартных настроек может привести к нестабильной работе девайса или полной неработоспособности.

Теперь начнём, сначала выделим основные разделы рут-прав:

  • Full Root — полный рут, даёт доступ ко всем ранее недоступным функциям
  • Shell Root — практически то же самое, только без доступа к разделу System
  • Temporary Root — временные права, пропадают после перезагрузки телефона

Для получения root-прав в одно касание лучше всего подойдёт бесплатное приложение 360 Root (скачать можно с официального сайта )

  • Скачайте и откройте приложение, нажмите кнопку (на скриншоте). Готово, рут-права получены

    Открываем и нажимаем на кнопку, выделенную на скриншоте

  • Скачайте с Play Market бесплатную версию приложения Root Explorer и откройте его. Root Explorer — утилита, дающая доступ ко всем библиотеке файлов, доступ к которым вы получили, выдав своему android-устройству root-права.

    Открываем программу

  • Переходим по пути data/data/com.android.vending и удаляем папку com.android.vending

    удаляем папку com.android.vending

  • Переходим по пути data/dalvik-cache и запускаем поиск. В появившимся окне вводим «Vending». Программа найдет файл, который вы должны удалить.

    Запускаем поиск по слову «vending»

    Файл, который вы должны удалить

Надеюсь, наши советы оказались полезны, и у вас все получилось. Помните, что доступ к root-правам остался, но не стоит им злоупотреблять, это может привести к необратимым последствиям.

ТОП приложений для водителя

Современный гаджет способен принести немало пользы автолюбителю. Особенно, если на нем установлены правильные программы.

Сегодня сфера ПО (програмного обеспечения) может предложить полезные приложения не только для предпринимателей или людей, занимающихся спортом, но и для водителей. Давайте рассмотрим несколько программ, которые уже оценили тысячи украинских автомобилистов.

 

 «Дія»

Установив приложение «Дію», вы сможете свободно пользоваться цифровым водительским удостоверением и свидетельством о регистрации транспортного средства. 

Для получения электронных версий своих документов установите приложение и авторизуйтесь. Документы появятся в приложении автоматически если в реестре есть все данные.

Ссылка на приложение «Дія» для Android

Ссылка на приложение «Дія» для IOS
 

Для идентификации и авторизации используется система Bank ID или приложение от monobank и «Приватбанка».
 

TOPLYVO UA

Приложение, для покупки топлива по оптовым ценам в сетях АЗС.  В перечень партнеров программы входят такие гиганты рынка:

Еще донедавна приложение работало с такими большими сетями как OKKO и WOG. Но 17 января на официальной странице Facebook Toplyvo.ua подводя итоги 2019 года сообщили, что перестают сотрудничать с АЗС OKKO и WOG. При этом ничего не объясняя. 

Из хорошего, в приложении появилась возможность делится талонами. 4 февраля всем пользователям приложения стала доступна такая функция. Если ваши друзья тоже пользуются приложением Toplyvo.ua и есть в вашей телефонной книге, вы можете в считанные секунды отправить им талон. А это всегда отличный подарок автомобилисту! 

Также, с помощью приложения можно оплачивать Дорожные сборы стран Европы.

Водители уже оценили выгоду покупки топлива с помощью этого приложения. При покупке ДТ или бензина экономия составляет до 12%, а на газ до 8%. Активно использую это приложение, на 30 литрах экономлю 75 грн.

А 75 грн — это пончик и кофе, ну или хот-дог и кофе, кто что любит.  

Ссылка на приложение «TOPLYVO UA» для Android

Ссылка на приложение «TOPLYVO UA» для IOS

С TOPLYVO UA удобно контролировать свои расходы на бензин или дизельное топливо. А еще приложение всегда подскажет, где поблизости расположены АЗС, в которых можно заправиться по талонам.

Еще одна классная фишка TOPLYVO UA – если вы рекомендуете приложение знакомым и они регистрируются перейдя по ссылке, которую вы им отправите, то программа будет зачислять процент от их затрат на ваш личный счет.

 

MAPS.ME

Каждый раз отправляясь в долгую поездку по незнакомым дорогам водитель должен быть готовым к неожиданным сюрпризам и не отвлекаться на мелочи. Это возможно с приложением MAPS.ME.

Главное преимущество программы заключается в том, что она работает без интернета. Достаточно установить MAPS.ME, выбрать начальную и конечную точку маршрута, загрузить карту и начать поездку.

Ссылка на приложение «MAPS.ME» для Android

Ссылка на приложение «MAPS.ME» для IOS

Google Maps  

Приложение Google Maps станет надежным помощником в навигации по городу. При наличии свободного доступа к интернету программа сориентирует и подскажет, в каком месте произошло ДТП или образовались пробки.

Для дальних поездок приложение Google Maps не подходит. Как правило, в загородной местности интернет работает с перебоями, и как только вы немного отклонитесь от маршрута, то нет гарантии, что приложение вернет вас на правильный маршрут. В результате потратите больше времени на поездку, и не факт, что дальше программа подскажет дорогу с нормальным покрытием. 

Ссылка на приложение «Google Maps» для Android

Ссылка на приложение «Google Maps» для IOS

 

Штрафы UA

Будучи в постоянном движении, современный украинский автомобилист не всегда может запарковать машину там, где это разрешено ПДД. Результат этому – штраф, который нужно выплатить. Но что делать, если рядом нет банковского отделения или карты? Ответ прост – оплатить можно в Штрафы UA.

Для работы с программой достаточно зарегистрировать личный кабинет и ввести банковские реквизиты своей карты. Приложение Штрафы UA запомнит их и будет использовать в дальнейшем.

Еще одна функция приложения Штрафы UA – помощь в подсчете стоимости страхового полиса.  Для этого достаточно ввести гос. номер машины, после чего будет доступна полная информация о его машине.

Ссылка на приложение «Штрафы UA» для Android

Ссылка на приложение «Штрафы UA» для IOS

 

Waze

Это приложение разработано для простой и удобной навигации, в основном по городу, так как необходимо подключение к интернету. Главное его преимущество в том, что маршруты постоянно обновляются в реальном времени другими водителями. Показывает стационарные камеры, пробки, включая их плотность и возможное время ожидания, аварии, полицейские посты, машины стоящие у обочины. В Waze простой и доступный интерфейс, с которым справится даже школьник.

Ссылка на приложение «Waze» для Android

Ссылка на приложение «Waze» для IOS

 

Car Scanner ELM OBD2

Предназначение этой программы – помощь водителю в определении неполадок его автомобиля. Приложение Car Scanner ELM OBD2 поможет быстро считать ошибки и узнать, какой агрегат машины неисправен, и неисправен ли он вообще.

Программа Car Scanner ELM OBD2 позволит сэкономить массу времени и денег, которые пришлось бы потратить на поиск и поездку к ближайшему СТО.

Кроме того, Car Scanner ELM OBD2 поможет автомобилисту отследить расход топлива в данный момент, за конкретную поездку или за определенный отрезок времени.

Ссылка на приложение «Car Scanner ELM OBD2» для Android

Ссылка на приложение «Car Scanner ELM OBD2» для IOS

 

Приложения от популярных АЗС

WOG Pride

Приложение WOG Pride разработано для удобства постоянных клиентов сети WOG. Программа поможет в поиске ближайшей АЗС и даст водителю возможность контролировать свои расходы. Бонусы можно обменять на любую продукцию и товары представленные в ассортименте АЗС WOG: топливо любых марок, товары в магазинах WOG-маркет, продукцию WOG-кафе.

Ссылка на приложение «WOG Pride» для Android

Ссылка на приложение «WOG Pride» для IOS

 

Shell Ukraine

В сети АЗС Shell на постоянной основе действует программа лояльности Клуб Shell SMART. Покупая топливо в сети АЗС, вы накапливаете SMART-балы и обмениваете их на подарки от Shell.

Также с помощью этой программы автомобилист сможет узнать о расположении ближайшей станции Shell, а также рассчитать стоимость поездки к ней.

Ссылка на приложение «Shell Ukraine» для Android

Ссылка на приложение «Shell Ukraine» для IOS

 

My Fishka

Приложение My Fishka создано для постоянных клиентов сети OKKO. Программа My Fishka поможет накопить проценты от затрат на топливо и использовать их для дальнейшей заправки на АЗС OKKO или в магазинах и ресторанах, которые являются партнерами программы.  

Ссылка на приложение «My Fishka» для Android

Ссылка на приложение «My Fishka» для IOS

 

ПДД Украины

Эта программа содержит в себе всю необходимую информацию о правилах дорожного движения. Приложение ПДД Украины будет особенно полезно начинающим водителям или тем кто проходит обучение в школе. 

В отличие от простого сборника знаков, разметки и объяснения к ним, в ПДД Украины содержатся тесты. Пройти их и проверить свои знания правил дорожного движения сможет каждый. Для этого даже не нужно подключение к интернету.

Ссылка на приложение «ПДД Украины» для Android

Ссылка на приложение «ПДД Украины» для IOS

Мнение эксперта MARKET. RIA: Каждое из этих приложений поможет сэкономить деньги, нервы и, главное, время. Главное – держать смартфон подальше от любознательных детей, иначе все накопительные баллы или проценты быстро испарятся.

Читайте также: ТОП сайтов и приложений для планирования путешествия

С пожеланиями хорошей дороги, MARKET.RIA — удобно для автомобилиста

Команды adb для Android пользователей

Если у вас есть смартфон с операционной системой Android и вы часто с ним экспериментируете, что-то настраиваете или перепрошиваете, то, скорее всего, вы уже знакомы с инструментом ADB или (Android Debug Bridge). Это программа для управления смартфоном через компьютер по USB, которая содержит множество полезных команд.

Вы можете просматривать журналы, устанавливать и удалять приложения, управлять устройством и выполнять множество других полезных команд. Из этой статьи вы узнаете как пользоваться ADB в Linux, мы рассмотрим полезные команды ADB для пользователей Android и подробно разберем эту утилиту. Но сначала рассмотрим как установить сам инструмент на компьютер.

Содержание статьи:

Установка ADB в Linux

Программа ADB входит в стандартный набор утилит Android SDK. Вы можете установить эту среду и получите нужную утилиту. Но не всегда хочется тянуть на компьютер целую среду исполнения. Иногда нужна только одна программа. Ее можно очень просто установить отдельно. В Ubuntu для этого можно выполнить команду:

sudo apt install android-tools-adb

Для Red Hat, CentOS команда будет немного отличаться:

sudo yum install android-tools-adb

Если вам нужно установить ADB в Windows, то придется скачать пакет SDK Platform Tools из официального сайта.

Подготовка смартфона

Для того чтобы вы смогли использовать adb вместе со своим смартфоном вам необходимо включить режим отладки по USB. Эта возможность скрыта во всех версиях Android начиная с 4.2. Чтобы стать разработчиком сначала зайдите в «Настройки» -> «О телефоне» и семь раз нажмите на пункте «Номер сборки»:

Затем в главном меню настроек появится пункт «Для разработчиков»:

Тут необходимо поставить галочку напротив раздела «Разрешить отладку по USB»:

Теперь ваш телефон готов к работе с adb. Подключите его по USB к вашему компьютеру и начнем работать.

Полезные команды ADB

Перед тем как мы сможем управлять устройством, необходимо еще кое-что сделать. Команде adb требуется специальная служба для связи с Android необходимо ее запустить. Для этого используйте такую команду:

adb start-server

После завершения работы вы можете отключить службу чтобы она не потребляла лишние ресурсы:

adb kill-server

Теперь можно выполнять adb команды для android.

Список устройств

Первым делом, посмотрим список подключенных устройств к нашему компьютеру. Для этого используется команда devices:

adb devices

Если к системе подключено несколько смартфонов, то по умолчанию действия будут применяться к первому. Но вы можете задать нужное имя устройства с помощью опции -s. Например:

adb -s 0123456789ABCDEF logcat

Также указать имя устройства, к которому необходимо применять команды программы adb можно с помощью переменной ANDROID_SERIAL:

export ANDROID_SERIAL=0123456789ABCDEF

Тогда все команды adb будут применяться к устройству, указанному в этой переменной.

Состояние устройства

С помощью команды get-state вы можете узнать состояние устройства:

adb get-state

Команда вернет одно из значений: device — работает, bootloader — загружается, offline — выключено. С помощью команды status-window можно постоянно отслеживать состояние:

adb status-window

Просмотр журналов

Самое частое действие, которое приходится делать разработчикам и тестировщикам мобильных приложений в поиске ошибок — это просмотр журналов системы и приложений. Для этого применяется команда logcat:

adb logcat

Утилита выводит содержимое логов Android в реальном времени, так что вы сразу увидите все сообщения об ошибках. Также можно записать все в файл:

adb logcat -d > ~/android.log

С помощью опции -c можно очистить все логи на устройстве:

adb logcat -c

Не всегда нужно смотреть полный системный лог, иногда будет достаточно только увидеть сообщения нужной программы.. Для этого просто укажите имя пакета:

adb logcat com android.settings

С помощью опции —log-level можно установить уровень подробности сообщений, доступны такие варианты: V, D, I, W, E, F, S. Для выбора подробности вывода укажите нужную букву через двоеточие после имени приложения:

adb logcat com android.settings:E

Или выведем только ошибки для всей системы целиком:

adb logcat *:E

Передача файлов на устройство

Если вам нужно быстро отправить файл на устройство, для этого можно использовать команду push. Вот ее синтаксис:

$ adb push /адрес/локального/файла /адрес/удаленного/файла

Например, загрузим файл из домашней папки на устройство:

adb push ~/file /sdcard/file

Файл будет мгновенно передан на устройство и вы можете в этом убедиться. Дополнительно можно использовать опцию -p для отображения прогресса, а также опцию -a чтобы сохранить оригинальный timestamp.

Загрузка файла с устройства

Таким же образом вы можете скачать файл с устройства. Синтаксис команды pull:

$ adb push  /адрес/удаленного/файла /адрес/локального/файла

Например, скопируем отправленный файл обратно:

adb pull /sdcard/file ~/file1

Установка приложений

С помощью adb можно напрямую устанавливать приложения. Эта возможность может быть очень удобной для разработчиков. Команде install нужно передать только адрес apk файла:

adb install ~/Momentum_apkpure. com.apk

После этого приложение установлено и готово к работе на вашем устройстве. Если вам нужно обновить приложение до более новой версии, тогда используйте опцию -r. Это очень важно. Иначе получите ошибку:

adb -r install~/Momentum_apkpure.com.apk

Еще доступны опции -s — для установки на флешку и -d — для понижения версии программы.

Удаление приложений

Удалить приложение тоже очень просто. Для этого достаточно передать имя его пакета команде uninstall. Например, удалим браузер Firefox:

adb uninstall org.mozilla.firefox

Резервное копирование

Вы можете создать резервную копию своей прошивки и всех системных файлов Android для того, чтобы ее потом очень просто и быстро восстановить. Для этого используется команда backup. Сначала рассмотрим ее синтаксис:

$ adb backup опции пакеты

Опции указывают какие данные нужно копировать. Каждая опция может иметь приставку no, которая означает, что эти данные копировать не нужно. Рассмотрим основные опции:

  • -apk — сохранять apk файлы для программ, по умолчанию отключено;
  • -obb — сохранять расширения установленные расширения apk файлов в формате obb. По умолчанию отключено;
  • -shared — сохранять данные приложений из SD карты или памяти телефона, отключено;
  • -all — сохранить все установленные приложения;
  • -system — сохранить системные приложения, эти приложения уже входят в список all.

Последний параметр позволяет указать какие приложения нужно сохранять. Если указана опция all, то, естественно, что этот параметр не нужен. Таким образом, команда для резервного копирования системы будет выглядеть вот так:

adb backup -apk -obb -shared -all -f backup.ab

С помощью опции -f мы задаем имя файла архива, он будет сохранен в текущей папке. Если его не задать, то имя по умолчанию будет backup.ab. Вам нужно будет подтвердить создание копии на телефоне, можно ввести пароль для шифрования:

 

Для восстановления из резервной копии используйте команду restore. Ей достаточно передать адрес файла:

adb restore android.ab

Перезагрузка устройства

В утилиты adb есть даже команды для перезагрузки устройства. Можно просто перезагрузить смартфон с помощью команды reboot:

adb reboot

Можно загрузиться в режим recovery:

adb reboot recovery

Или в режим настройки загрузчика:

adb reboot bootloader

Консоль Android

С помощью команды shell вы можете войти в консоль Android и выполнять там необходимые действия. Здесь доступно большинство привычных нам команд linux. Мы подробно рассматривали все доступные команды в статье команды Android Terminal Emulator. Сейчас же поговорим про саму команду shell и приведем несколько примеров. Чтобы войти в консоль наберите:

adb shell

Дальше откроется командная строка adb на Android. Если вам не нужна консоль, а нужно только выполнить команду и вернуть результат, то вы можете передать команду сразу после shell:

adb shell ls /system

Например, с помощью такой команды вы можете сделать снимок экрана:

adb shell screencap -p /sdcard/screenshot. png

А так можно снять экран смартфона на видео:

adb shell screenrecord /sdcard/video.mp4

Выводы

В этой статье мы рассмотрели как пользоваться утилитой adb для управления Android смартфоном, а также основные команды программы adb, которые вы можете применять. Команды adb shell — это те же команды, что вы можете выполнять в терминале Android, поэтому нет смысла их разбирать еще раз. Надеюсь, информация из этой статьи была вам полезной.

«Яндекс» сделал Android трехмерным — CNews

, Текст: Владислав Мещеряков

«Яндекс» и принадлежащая ему компания SPB Software представили 3D-оболочку для планшетов, работающих под управлением Android. Продукт предназначен для операторов и производителей планшетов, которые смогут с его помощью придать им индивидуальность.

Сегодня на Всемирном мобильном конгрессе в Барселоне «Яндекс» представит разработку принадлежащей ему компании SPB Software. Разработка носит название Яндекс Shell 3D Tablet Edition.

По сообщению поисковика, разработанная для Android оболочка «Яндекс» Shell 3D Tablet Edition «использует автостереоскопические технологии, которые создают эффект 3D-присутствия» на обычном экране планшета.

Описывая продукт, «Яндекс» называет оболочку «совершенно новым способом взаимодействия с планшетом», который сделает более удобной пользовательскую навигацию.

Разработка адресована операторам сотовой связи и производителям планшетов, которые с ее помощью могут кастомизировать продаваемые ими планшеты. Будет ли оболочка доступна рядовым покупателям в Android.Market, поисковик не сообщает.

«Яндекс» Shell 3D Tablet Edition — второй продукт компании SPB Software, который поисковик в последние дни выводит на рынок под своим брендом. В начале февраля 2012 г. в российском Android Market появилась бесплатная интерфейсная оболочка Яндекс Shell 3D, ранее известная пользователям Android и Symbian под именем SPB Shell 3D. Интересно, что при этом одновременно с новой оболочкой в Android Market присутствует и старая версия SPB Shell 3D, предлагаемая за деньги.

Когда в ноябре 2011 г. «Яндекс» объявил о приобретении компании SPB Software за $38 млн, эксперты рынка предположили, что поисковик приобретает разработчика интерфейсов для того, чтобы закрепиться на недружественном ему рынке Android-приложений, контролируемом главным конкурентом «Яндекса» — Google.


Предок «Яндекс» Shell 3D Tablet Edition — оболочка SPB Shell 3D

После приобретения поисковиком компании SPB Software, помимо слова «Яндекс» в названии в продукт добавилась интеграция с поисковыми службами и сервисами «Яндекса».

Новый продукт увеличит проникновение сервисов «Яндекса» в Android-смартфоны, тем более, что в отличие от ныне размещенной в Android Market оболочки, доступной только в России и на Украине, он будет предлагаться операторам и других стран. По словам Себастьяна-Юстуса Шмидта (Sebastian-Justus Schmidt), генерального директора и исполнительного вице-президента мобильного департамента «Яндекса», продукт добавит привлекательности планшетам в глазах их потенциальных покупателей, а сам «Яндекс» считает, что 3D-интерфейс станет нормой на планшетных устройствах .

Switch To English: Yandex makes Android 3-dimensional



android — Ошибка при попытке установить второе приложение flutter на эмуляторе

Чтобы это работало, ваш эмулятор Android должен быть запущен.

Откройте командную строку Windows / терминал Mac.

Перейти в каталог программы adb.exe . (Не обязательно, если это есть в вашем PATH.)

В Windows (пример расположения):

cd c: \ Android \ Sdk \ platform-tools \

Если у вас только один запущенный эмулятор, вам не нужно указывать, какой из подключается через adb shell , поэтому просто запустите:

оболочка adb

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

adb devices показывает запущенные эмуляторы

Подключить к эмулятору

adb -s emulator-5554 оболочка

Вам будет представлено приглашение оболочки внутри эмулятора:

У вас будут ограниченные разрешения, поэтому переключите пользователя на root с помощью команды:

su

Используйте команду disk filesystem , чтобы увидеть использование диска и доступное пространство

df

Если вам не хватает места, процент использования на / data будет высоким. Вам нужно освободить место на / data

Освободите место, удалив установленные приложения …

Ваши приложения находятся в / data / data :

кд / данные / данные

Ваши приложения легче увидеть, изменив порядок сортировки списка каталогов, чтобы ваши приложения отображались внизу:

ls -ltr

Вы можете удалить свое приложение прямо здесь, используя rm -r . В приведенном выше примере приложение хранится под com.mobdev.user_interface_intro :

rm -r /data/data/com.mobdev.user_interface_intro

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

Вы также можете удалить приложение в самом запущенном эмуляторе. Нажмите кнопку «Квадрат» и выберите «Настройки Android» (значок шестеренки)

.

Нажмите Приложения и уведомления

Найдите свое приложение и щелкните его

Нажмите Удалить

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

Ошибка

[INSTALL_FAILED_USER_RESTRICTED: недопустимый apk] в android

Ни один из других ответов не помог мне с использованием Xiaomis MIUI 10 на телефоне Mi 9.

Помимо обычных (например, включение отладки USB и Установка через USB в параметрах разработчика) ответы на другие вопросы предлагали отключить Оптимизация MIUI . Хотя это помогло, мне это не понравилось. Я покопался и пришел к следующим выводам:

Описанная ошибка возникла только при втором развертывании приложения и после этого продолжает возникать каждый раз при развертывании того же приложения на этом телефоне.

Чтобы решить эту проблему, я мог либо нажать Run / снова нажать Shift + F10 , либо отключить и снова подключить этот телефон. Все это не кажется жизнеспособным. Итак, я немного покопался, и оказалось, что когда вы увеличиваете versionCode в своем файле build. gradle каждый раз, когда вы создаете свое приложение, MIUI 10 не будет жаловаться и позволит вам установить приложение, как вы ожидать. Даже Android Studios Instant Run работает. Хотя делать это вручную так же раздражает.

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

Заменить

  defaultConfig {
    applicationId "your.app.id" // оставьте значение, которое есть в вашем файле
    minSdkVersion 23 // это тоже
    targetSdkVersion 28 // и это
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner "
}
  

с

  def versionPropsFile = файл ('version.properties')
значение по умолчанию = 0

Свойства versionProps = новые свойства ()

if (! versionPropsFile. exists ()) {
    versionProps ['VERSION_MAJOR'] = "1"
    versionProps ['VERSION_MINOR'] = "0"
    versionProps ['VERSION_PATCH'] = "0"
    versionProps ['VERSION_BUILD'] = "0"
    versionProps.store (versionPropsFile.newWriter (), ноль)
}

def runTasks = gradle.startParameter.taskNames
if ('assemblyRelease' в runTasks) {
    значение = 1
}

если (versionPropsFile.canRead ()) {

    versionProps.load (новый FileInputStream (versionPropsFile))

    versionProps ['VERSION_PATCH'] = (versionProps ['VERSION_PATCH']. toInteger () + значение) .toString ()
    versionProps ['VERSION_BUILD'] = (versionProps ['VERSION_BUILD']. toInteger () + 1) .toString ()

    versionProps.store (versionPropsFile.newWriter (), ноль)

    // здесь меняем старшую и младшую версию
    def mVersionName = "$ {versionProps ['VERSION_MAJOR']}. $ {versionProps ['VERSION_MINOR']}. $ {versionProps ['VERSION_PATCH']}»

    defaultConfig {
        applicationId "ваш.app.id "// оставьте значение, которое есть в вашем файле
        minSdkVersion 23 // это тоже
        targetSdkVersion 28 // и это
        versionCode versionProps ['VERSION_BUILD'].  toInteger ()
        versionName "$ {mVersionName} Сборка: $ {versionProps ['VERSION_BUILD']}"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
}
еще {
    throw new GradleException («Не удалось прочитать version.properties!»)
}
  

Теперь каждый раз, когда вы создаете свое приложение, нажимая Run или Instant Run , ваша версия Code / VERSION_BUILD увеличивается.Если вы создаете выпуск, ваш VERSION_PATCH увеличивается, а ваше versionName меняется с x.y.z на x.y.z + 1 (т.е. 1.2.3 превращается в 1.2.4 ). Чтобы изменить VERSION_MAJOR ( x ) и VERSION_MINOR ( y ), отредактируйте файл version.properties , который вы можете найти в папке вашего модуля. Если вы не меняли имя модуля, оно называется app , поэтому этот файл находится в app / version. недвижимость .

Захват и чтение отчетов об ошибках | Разработчики Android

Отчет об ошибке содержит журналы устройства, трассировки стека и другие диагностические данные. информация, которая поможет вам найти и исправить ошибки в вашем приложении. Вы можете зафиксировать ошибку отчет со своего устройства, используя либо Take bug report developer на устройстве, меню эмулятора Android, или команду adb bugreport на вашем компьютере разработчика.

Рисунок 1. Опции разработчика

Чтобы получить отчет об ошибке, вы должны иметь Параметры разработчика включены на вашем устройство, чтобы вы могли получить доступ к опции Take bug report .

Захватить отчет об ошибке с устройства

Рисунок 2. Отчет об ошибке готов

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

  1. Убедитесь, что у вас есть разработчик Опции включены.
  2. В Параметры разработчика коснитесь Получить отчет об ошибке .
  3. Выберите тип отчета об ошибке и нажмите Отчет .

    Через мгновение вы получите уведомление о том, что отчет об ошибке готов (см. фигура 2).

  4. Чтобы поделиться отчетом об ошибке, коснитесь уведомления.

Захватить отчет об ошибке из эмулятора Android

Из эмулятора Android можно использовать File a bug функция в расширенных элементах управления:

  1. Нажмите Подробнее в панель эмулятора.
  2. В окне Расширенные элементы управления выберите Отчет об ошибке слева.

    Откроется экран, на котором вы можете увидеть детали отчета об ошибке, такие как снимок экрана, информация о конфигурации AVD и журнал отчетов об ошибках. Ты можешь также введите сообщение с шагами воспроизведения для сохранения вместе с отчетом.

  3. Подождите, пока завершится сбор отчета об ошибке, а затем щелкните Сохранить отчет .

Захватить отчет об ошибке с помощью adb

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

$ adb bugreport E: \ Reports \ MyBugReports
 

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

Если у вас подключено несколько устройств, вы должны указать устройство с -s вариант. Выполните следующие команды adb , чтобы получить серийный номер устройства и сгенерировать отчет об ошибке.

устройства $ adb
Список подключенных устройств
эмулятор-5554 устройство
Устройство 8XV7N15C31003476

$ adb -s 8XV7N15C31003476 отчет об ошибке
 

Проверьте ZIP-файл отчета об ошибке

По умолчанию ZIP-файл называется bugreport- BUILD_ID - DATE . zip и он может содержать несколько файлов, но самым важным из них является bugreport- BUILD_ID - DATE .txt . Этот это отчет об ошибке, и он содержит диагностический вывод для системных служб ( dumpsys ), журналы ошибок ( dumpstate ), и журналы системных сообщений ( logcat ). Системные сообщения включают трассировку стека когда устройство выдает ошибку, и сообщения, написанные из всех приложений с Бревно кл.

ZIP-файл содержит версию .txt файл метаданных, содержащий письмо о выпуске Android, а когда включена systrace, ZIP-файл также содержит файл systrace.txt . В Инструмент Systrace помогает анализировать производительность вашего приложения, фиксируя и отображая время выполнения вашего процессы приложений и другие системные процессы Android.

Инструмент dumpstate копирует файлы из файловой системы устройства. в ZIP-файл в папке FS , чтобы вы могли ссылаться на них.Например, файл / dirA / dirB / fileC на устройстве сгенерирует FS / dirA / dirB / fileC Запись в ZIP-файле.

Рисунок 3. Структура файла отчета об ошибке

Для получения дополнительной информации см. Чтение отчетов об ошибках.

Получайте отчеты от пользователей

Сбор отчетов об ошибках, как описано выше, полезен при использовании приложения. вы сами, но ваши конечные пользователи не могут легко делиться такими типами отчетов об ошибках с тобой.Чтобы получать отчеты о сбоях с трассировкой стека от реальных пользователей, вам следует воспользоваться отчетами о сбоях в Google Play и Firebase Особенности.

Консоль Google Play

Вы можете получить отчеты из Консоль Google Play для просмотра данных о сбоях и приложениях не ответы на ошибки (ANR) от пользователей, установивших ваше приложение из Google Play. Доступны данные за предыдущие шесть месяцев.

Для получения дополнительной информации см. Просмотр сбоев и ошибок приложения, не отвечающего (ANR) в справке Play Console.

Отчеты о сбоях Firebase

Отчеты

Firebase Crashlytics создают подробные отчеты об ошибках в вашем приложении. Ошибки сгруппированы в проблемы на основе схожих трассировок стека и упорядочены. по серьезности воздействия на ваших пользователей. Помимо автоматических отчетов, вы может регистрировать настраиваемые события, чтобы помочь зафиксировать шаги, ведущие к сбою.

Вы начнете получать отчеты о сбоях от любого пользователя, просто добавив Зависимости Firebase в файл build. gradle .Для получения дополнительной информации см. Firebase Crashlytics.

Известные проблемы с Android Studio и Android Gradle Plugin

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

Обновление до предварительной версии: Каждый выпуск Android Studio и Android Плагин Gradle направлен на повышение стабильности и производительности, а также на добавление новых функций.Чтобы испытать преимущества предстоящих выпусков прямо сейчас, загрузите и установите Предварительный просмотр Android Studio.

Известные проблемы с Android Studio

В этом разделе описаны известные проблемы, существующие в последней стабильной версии Android Studio.

Ошибка при использовании разных паролей для ключа и хранилища ключей

Начиная с версии 4. 2, Android Studio теперь работает на JDK 11. Это обновление вызывает основное изменение поведения, связанное с ключами подписи.

При переходе к Build> Generate Signed Bundle / APK и попытайтесь настроить подписывание приложений для набора приложений или APK, ввод разных паролей для ключа и хранилища ключей может привести к следующая ошибка:

  Ключ создан с ошибками:
Предупреждение: разные хранилища и пароли ключей не поддерживаются для хранилищ ключей PKCS12
  

Чтобы обойти эту проблему, введите один и тот же пароль для ключа и хранилище ключей.

Android Studio зависает на macOS Big Sur

На компьютерах под управлением macOS Big Sur Android Studio 4.1 может зависать, когда вы открыть диалог.

Чтобы обойти эту проблему, выполните одно из следующих действий:

  • Зайдите в меню Apple, выберите Системные настройки> Общие . в Предпочитать вкладки при открытии документов вариант, выберите «никогда». Затем перезапустите Android Studio.
  • Обновление до Android Studio 4.2, в настоящее время доступно в бета-канале.

Сбой приложений, использующих Database Inspector на эмуляторе Android 11

Приложения, использующие инспектор базы данных, могут аварийно завершить работу на Android 11 эмулятор, с ошибкой, подобной следующей, появляющейся в logcat:

  Фатальный сигнал 11 (SIGSEGV), код 1 (SEGV_MAPERR)
  

Чтобы решить эту проблему, обновите эмулятор Android 11 до версии 9 или выше, перейдите в Инструменты > SDK Manager . На вкладке SDK Platforms отметьте поле с надписью Показать сведения о пакете и выбрать версию 9 или более позднюю из эмулятор Android 11.

Studio не запускается после обновления

Если Studio не запускается после обновления, проблема может быть связана с недопустимым Конфигурация Android Studio, импортированная из предыдущей версии Android Studio или несовместимый плагин. В качестве обходного пути попробуйте удалить (или переименовать, для в целях резервного копирования) в каталог ниже, в зависимости от версии Android Studio. и операционная система, и снова запустите Android Studio. Это сбросит Android Studio в состояние по умолчанию, при этом все сторонние плагины удалены.

Для Android Studio 4.1 и более поздних версий:

  • Windows: % APPDATA% \ Google \ AndroidStudio <версия>
    Пример: C: \ Users \ your_user_name \ AppData \ Roaming \ Google \ AndroidStudio4.1

  • macOS: ~ / Библиотека / Поддержка приложений / Google / AndroidStudio <версия>
    Пример: ~ / Library / Application Support / Google / AndroidStudio4.1

  • Linux: ~ / .config / Google / AndroidStudio <версия> и ~ / .local / share / Google / AndroidStudio <версия>
    Пример: ~ / .config / Google / AndroidStudio4.1 и ~ / .local / share / Google / AndroidStudio4.1

Для Android Studio 4.0 и более ранних версий:

  • Windows: % HOMEPATH% \. AndroidStudio <версия> \ config
    Пример: C: \ Users \ ваше_имя_пользователя \.AndroidStudio3.6 \ config

  • macOS: ~ / Library / Preferences / AndroidStudio <версия>
    Пример: ~ / Library / Preferences / AndroidStudio3.6

  • Linux: ~ / .AndroidStudio <версия> / config
    Пример: ~ / .AndroidStudio3.6 / config

Обратите внимание, что каталог конфигурации для Canary и бета-версий Android Студия PreviewX.Y вместо X.Y для <версия> . Например, Android В сборках Studio 4.1 Canary используется AndroidStudioPreview4.1 вместо AndroidStudio4.1 Каталог , который используется для Release Candidates и Stable выпускает.

Проблема компиляции в мультиплатформенных проектах Kotlin

Из-за отсутствия символов в коде Kotlin MPP могут возникать ошибки компиляции. Обновление плагина Kotlin до версии 1.4 должно решить эту проблему.

Отсутствуют кнопки панели инструментов «Выполнить», «Отладка» и «Профиль»

Если вы настроили группу кнопок действий Run / Debug — например, изменив параметры в Внешний вид и поведение> Меню и панели инструментов в Настройки или Окно настроек — те Кнопки действий могут исчезнуть с панели инструментов после перезапуска среды IDE. Этот это известная проблема в версии IntelliJ, на которой построена Android Studio 4.0. (см. проблему IDEA-228450).

Чтобы решить эту проблему, отмените все настройки, которые вы сделали для этих кнопок. следующим образом:

  1. Выберите Файл> Настройки (или Android Studio> Настройки в macOS).
  2. В левой части окна перейдите к Внешний вид и поведение> Меню и Панели инструментов .
  3. В правой части окна перейдите к Главная панель инструментов> Выполнить на панели инструментов. Действия и выберите Выполнить / Отладка .
  4. В верхней части окна щелкните Вернуть .и выберите Restore Run / Debug .
  5. Щелкните ОК . Теперь вы должны увидеть недостающие кнопки на панели инструментов.

Конфликты сопоставления клавиш в Linux

В Linux некоторые сочетания клавиш конфликтуют с клавиатурой Linux по умолчанию. ярлыки и ярлыки популярных оконных менеджеров, таких как KDE и GNOME. Эти конфликтующие сочетания клавиш могут не работать должным образом в Android Studio.

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

Маленький текст пользовательского интерфейса в Chrome OS

В Chrome OS текст может выглядеть намного меньше, чем в предыдущих выпусках. Работать обойдя эту проблему, сделайте следующее:

  1. Откройте окно настроек , щелкнув Файл> Настройки
  2. Перейдите к Внешний вид и поведение> Внешний вид .
  3. Выберите Использовать собственный шрифт .
  4. Увеличьте размер шрифта.
  5. В окне Настройки перейдите к Редактор> Шрифт .
  6. Увеличьте размер шрифта.
  7. Щелкните ОК .

Редактирование кода

В этом разделе описаны известные проблемы, связанные с редактором кода.

Замороженный ввод с клавиатуры — проблемы с «iBus» в Linux

Есть некоторые известные взаимодействие между демоном iBus в Linux и Android Studio. В некоторых сценариях, IDE перестает отвечать на ввод с клавиатуры или начинает ввод случайные символы. Эта ошибка вызвана отсутствием синхронизации. между iBus и XLib + AWT, о чем уже сообщалось в апстриме JetBrains и iBus.Есть три текущих обходных пути для этой проблемы:

Конфигурация проекта

В этом разделе описаны известные проблемы, связанные с конфигурацией проекта и Gradle. синхронизировать.

Ошибка синхронизации Gradle: сломанная труба

Проблема в том, что демон Gradle пытается использовать IPv4 вместо IPv6.

ошибок «одноранговый узел не аутентифицирован» из Gradle Sync или SDK Manager

Основная причина этих ошибок — отсутствие сертификата в $ JAVA_HOME / jre / lib / сертификаты / cacerts .Чтобы устранить эти ошибки, продолжайте следующим образом:

Развертывание

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

Android-эмулятор HAXM на macOS High Sierra

Эмулятор Android на macOS High Sierra (10.13) для лучшей работы требует HAXM 6.2.1+ совместимость и стабильность с macOS. Однако в macOS 10.13 есть больше вовлеченный процесс для установки расширений ядра, таких как HAXM. Тебе нужно чтобы вручную разрешить установку самого расширения ядра следующим образом:

  1. Сначала попробуйте установить последнюю версию HAXM из SDK Manager.
  2. В MacOS перейдите в Системные настройки> Безопасность и конфиденциальность .
  3. Если вы видите предупреждение, что системное программное обеспечение от разработчика «Intel Corporation Приложения «была заблокирована загрузка , нажмите Разрешить :

Для получения дополнительной информации и обходных путей см. эта веб-страница Apple и выпуск 62395878.

Android Studio неправильно принудительно останавливает приложение

При использовании Android Studio 4.0.x или 4.1, Android Studio неправильно принудительно останавливает отлаживаемое приложение, если приложение закрыто.

Эта проблема вызывает следующие нежелательные побочные эффекты:

Примечание: Эта проблема исправлена ​​в Android Studio 4.1.1 и выше . если ты если Android Studio настроена на получение обновлений на стабильном канале, вы можете получите последнюю версию, выбрав «Справка »> «Проверить наличие обновлений» ( Android Studio> Проверить наличие обновлений в macOS). В противном случае вы можете скачать его с Страница Android Studio.

Применить изменения

В этом разделе описаны известные проблемы, связанные с применением изменений.

Новое имя приложения не применяется

Если вы переименуете свое приложение, а затем попытаетесь применить это изменение, обновленное имя может не отражаться. Чтобы обойти эту проблему, нажмите Выполнить для повторного развертывания приложения и просмотра ваших изменений.

Проблема в среде выполнения Android вызывает ошибку

Если вы используете устройство под управлением Android 8.0 или 8.1, вы можете столкнуться с Сообщения «VERIFICATION_ERROR» при попытке применить определенные типы изменений (особенно если вы используете Kotlin).Это сообщение вызвано проблемой с Android Runtime, исправленный в Android 9.0 и более поздних версиях. Хотя проблема приводит к сбою Apply Changes, вы все равно можете Run ваше приложение еще раз, чтобы увидеть ваши изменения. Однако мы рекомендуем вам обновить устройство на Android 9.0 или выше.

Применить изменения не удается с помощью ShellCommandUnresponsiveException

При использовании «Применить изменения» в Android Studio 4.1 и ниже возможно устройство застревает в состоянии, которое не позволяет применить какие-либо изменения к этому устройству.Когда возникает эта проблема, применить изменения не удается с ShellCommandUnresponsiveException .

Чтобы обойти эту проблему, выполните следующую команду ADB:

оболочка adb rm -fr /data/local/tmp/.studio
 
Примечание: Эта проблема исправлена ​​в Android Studio 4.2 Canary 10 и выше . если ты если Android Studio настроена на получение обновлений на канале Canary или Dev, вы можете получите последнюю версию, выбрав «Справка »> «Проверить наличие обновлений» ( Android Studio> Проверить наличие обновлений в macOS).В противном случае вы можете скачать его с Страница предварительного просмотра Android Studio.
Невозможно применить изменения при использовании android: sharedUserId

Если вы попытаетесь внести изменения в класс, который еще не был развернут на вашем запущенное приложение, применить изменения не удастся, если ваше приложение настроено в любом из следующими способами:

Когда применить изменения не удается из-за этой проблемы, Android Studio отображает следующее сообщение:

  Изменения не применялись. Ошибка JVMTI: UNKNOWN_JVMTI_ERROR
  

Чтобы обойти эту проблему в Android Studio 3.5, нажмите Выполнить для повторного развертывания приложения и просмотра ваших изменений.

Примечание: Этот выпуск (# 135172147) — это исправлено в Android Studio 3.6 Canary 6 и выше . Если у вас Android Studio установлена ​​на получать обновления на канале Canary или Dev, последнюю версию можно получить, выбрав Справка > Проверить наличие обновлений ( Android Studio> Проверить наличие обновлений на macOS). В противном случае вы можете скачать его со страницы предварительного просмотра Android Studio.

Отладка и тестирование

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

JUnit проверяет отсутствие ресурсов в пути к классам при запуске из Android Studio

Если у вас есть определенные папки ресурсов в ваших модулях Java, то эти ресурсы не будут найдены при запуске тестов из IDE. Запуск тестов использование Gradle из командной строки будет работать. Выполнение проверки Gradle задача из IDE тоже будет работать. См. Проблему 64887 для получения дополнительной информации подробности.

Эта проблема возникает из-за IntelliJ 13, для которого требуется только одна папка в качестве пути к классам.Конструктор IntelliJ копирует все ресурсы в эту папку сборки, но Gradle не копирует ресурсы.

  • Обходной путь 1. Запустите задачу Gradle check из среды IDE, а не запуск модульного теста.
  • Обходной путь 2. Обновите сценарий сборки, чтобы вручную скопировать ресурсы в папку сборки. Видеть комментарий №13 для дополнительной информации.
Запуск тестов JUnit может компилировать код дважды

При создании нового проекта может быть создана конфигурация шаблона JUnit. с двумя шагами «Перед запуском»: Make и Make с поддержкой Gradle.Эта конфигурация затем распространяется на все созданные конфигурации запуска JUnit.

  • Чтобы устранить проблему для текущего проекта, нажмите Выполнить> Изменить. Configurations и измените конфигурацию JUnit по умолчанию только на включить шаг Make с поддержкой Gradle.
  • Чтобы устранить проблему для всех будущих проектов, щелкните Файл> Закрыть Проект . Вы должны увидеть экран приветствия. Затем нажмите Настроить> Настройки проекта по умолчанию> Запустить конфигурации и изменить JUnit конфигурация, чтобы включить только шаг Make с поддержкой Gradle.
Некоторые конфигурации тестового запуска не работают

Не все конфигурации работают, доступны, если щелкнуть правой кнопкой мыши метод проверки. В частности, следующие конфигурации недопустимы:

  • Конфигурации запуска Gradle (которые имеют логотип Gradle в качестве значка) не Работа.
  • конфигурации запуска JUnit (которые имеют значок без зеленого Android) не применяются к инструментальным тестам, которые нельзя запустить на локальной JVM.
Android Studio также запоминает конфигурацию запуска, созданную в заданном контекст (например, щелчок правой кнопкой мыши по определенному классу или методу) и не будет Предлагаем запустить в будущем в другой конфигурации.Чтобы исправить это, нажмите Выполнить> Изменить конфигурации и удалить неправильно созданный конфигурации.
Добавление точек останова Java при отладке машинного кода

Пока ваше приложение приостановлено в точке останова в вашем родном кода, отладчики Auto и Dual могут не сразу распознать новые установленные вами точки останова Java. Чтобы избежать этой проблемы, добавьте точки останова Java либо перед началом сеанса отладки, либо пока приложение приостановлено на Java точка останова.Для получения дополнительной информации см. Проблему 229949.

Выход из собственного отладчика

При использовании отладчика Auto или Dual для отлаживать Java и собственный код, если вы войдете в собственную функцию из ваш код Java (например, отладчик приостанавливает выполнение на строке в вашем Код Java, который вызывает собственную функцию, и вы нажимаете Step Into ) и вы хотите вернуться к своему Java-коду, щелкните Программа возобновления (вместо Step Out или Step Over ).Процесс вашего приложения все равно будет приостановлен, поэтому нажмите Возобновить. Программа в your-module -java вкладку, чтобы возобновить его. Для получения дополнительной информации см. Проблему 224385.

Профилировщики

В этом разделе описаны известные проблемы с профилировщиками.

В пользовательском интерфейсе системной трассировки отсутствуют метки

На компьютерах с Windows с коэффициентами масштабирования 125% и 175% этикетки могут исчезают из определенных элементов пользовательского интерфейса System Trace, включая поток график активности.Чтобы обойти эту проблему, измените коэффициент масштабирования дисплея на любое значение, кроме 125% или 175%.

Эта проблема исправлена ​​в Android Studio 4.2.

Профилировщик встроенной памяти: профилирование недоступно во время запуска приложения

Профилировщик встроенной памяти в настоящее время недоступен во время запуска приложения. Этот опция будет доступна в следующем выпуске.

В качестве обходного пути можно использовать автономный профилировщик командной строки Perfetto. для захвата профилей запуска.

Ошибки тайм-аута в CPU Profiler

В процессоре Android Studio могут возникать ошибки «Не удалось остановить запись». Профилировщик при выборе Пример методов Java или Трассировка методов Java конфигурации.Часто это ошибки тайм-аута, особенно если вы видите следующее сообщение об ошибке в файле idea.log :

Время ожидания файла трассировки ART истекло

Ошибки тайм-аута имеют тенденцию влиять на отслеживаемые методы больше, чем на методы выборки и более длинные записи больше, чем более короткие записи. В качестве временного решения может быть полезно попробовать более короткие записи, чтобы увидеть, исчезнет ли ошибка.

Если у вас возникли проблемы с тайм-аутом при использовании Profiler, сообщите об ошибке который включает в себя марку / модель вашего устройства (-ов) и любые соответствующие записи из идея.log и logcat.

Исключение ADB при отладке или профилировании

При использовании Platform Tools 29.0.3, встроенной отладке и Android Studio Профилировщики могут работать некорректно, и вы можете увидеть либо «AdbCommandRejectedException» или «Не удалось подключиться к порту» в журнале idea.log файл при выборе Справка> Показать журнал . Обновление инструментов платформы до 29.0.4 или более поздняя версия устраняет обе проблемы.

Чтобы обновить инструменты платформы, сделайте следующее:

  1. Откройте диспетчер SDK из Android Studio, щелкнув Инструменты> SDK Manager или нажмите SDK Manager на панели инструментов.
  2. Установите флажок рядом с Android SDK. Platform-Tools , поэтому отображается галочка. Значок загрузки должен появиться в левом столбце.
  3. Щелкните Применить или ОК .

Известные проблемы с подключаемым модулем Android Gradle

В этом разделе описаны известные проблемы, существующие в последней стабильной версии плагин Android Gradle.

Исключения Lint в проектах Kotlin

Проекты Kotlin, которые устанавливают checkDependencies = true , могут встретить нулевой указатель исключения или следующая ошибка:

  Ошибка линта: для модуля не найден фрагмент пакета
  

В AGP 4.2 (Beta 4 или новее), доступны два обходных пути:

  • Установите для переменной среды LINT_DO_NOT_REUSE_UAST_ENV значение true .

  • Установите для системного свойства JVM lint.do.not.reuse.uast.env значение true . Ты можешь сделайте это из командной строки: ./gradlew -Dlint.do.not.reuse.uast.env = true: app: lintDebug

    В качестве альтернативы вы можете установить это свойство в файле gradle.properties : Система lint.do.not.reuse.uast.env = true

Использование этих обходных путей очищает кеш в компиляторе Kotlin между каждым модулем. анализ, эффективно «перезагружая» компилятор Kotlin. Обратите внимание, что влияние этих обходных путей на производительность неизвестно и, возможно, опасно.

Отсутствующий класс манифеста

Если ваше приложение определяет настраиваемые разрешения в своем манифесте, Android Gradle плагин обычно генерирует класс Manifest.java , который включает ваш собственный разрешения как строковые константы.Плагин упаковывает этот класс в ваше приложение, чтобы вам было легче ссылаться на эти разрешения во время выполнения.

Создание класса манифеста в Android Gradle в настоящее время не работает плагин 3.6.0 и выше. Если вы создаете свое приложение с этой версией плагина, и он ссылается на класс манифеста, вы можете увидеть ClassNotFoundException исключение. Чтобы решить эту проблему, выполните одно из следующих действий:

  • Ссылка на настраиваемые разрешения по их полному имени.Например, "com.example.myapp.permission.DEADLY_ACTIVITY" .
  • Определите свои собственные константы, как показано ниже:

      public final class CustomPermissions {
      public static final class permission {
        общедоступная статическая финальная строка DEADLY_ACTIVITY = "com.example.myapp.permission.DEADLY_ACTIVITY";
      }
      

Файл подписи с символами возврата каретки (CR)

Подпись JAR (схема v1) не поддерживает имена файлов, содержащие каретку. Вернуть символы (CR).(Видеть выпуск № 63885809).

Изменения API

Android Gradle Plugin 3.0.0 и более поздних версий представляет изменения API, которые удаляют определенные функциональные возможности и могут нарушить ваши существующие сборки. Более поздние версии плагин может вводить новые общедоступные API, которые заменяют сломанные функции.

Изменение выходных данных вариантов во время сборки может не работать

Использование Variant API для управления выходными данными вариантов нарушено новым плагин. Он по-прежнему работает для простых задач, таких как изменение имени APK во время время сборки, как показано ниже:

// Если вы используете each () для итерации по вариантным объектам,
// вам нужно начать использовать all ().Это потому, что each () повторяет
// через только те объекты, которые уже существуют во время настройки -
// но этот объект не существует во время конфигурации с новой моделью.
// Однако all () адаптируется к новой модели, забирая объекты как есть
// добавлено во время выполнения.
android.applicationVariants.  все  {вариант ->
    вариант. выходы.  все  {
        outputFileName = "$ {option.name} - $ {variant.versionName} .apk"
    }
}
 

Однако более сложные задачи, связанные с доступом к объектам outputFile больше не работает.Это связано с тем, что задачи для конкретных вариантов больше не создаются. на этапе настройки. Это приводит к тому, что плагин не знает все его выходы впереди, но это также означает более быстрое время настройки.

manifestOutputFile больше не доступен

Метод processManifest.manifestOutputFile () больше не доступен, и при его вызове вы получаете следующую ошибку:

Возникла проблема при настройке проекта ": myapp".
   Не удалось получить неизвестное свойство manifestOutputFile для задачи: myapp: processDebugManifest
   типа com.android.build.gradle.tasks.ProcessManifest.
 

Вместо вызова manifestOutputFile () , чтобы получить файл манифеста для каждого вариант, вы можете вызвать processManifest.manifestOutputDirectory () , чтобы вернуть путь к каталогу, содержащему все сгенерированные манифесты. Тогда ты можешь найдите манифест и примените к нему свою логику. Пример ниже динамически изменяет код версии в манифесте:

android.applicationVariants.all {вариант ->
    вариант.outputs.all {вывод ->
        output.processManifest.doLast {
            // Сохраняет путь к файлу maifest.
            String manifestPath = "$ manifestOutputDirectory / AndroidManifest.xml"
            // Сохраняет содержимое манифеста.
            def manifestContent = файл (manifestPath) .getText ()
            // Изменяет код версии в сохраненном тексте.
            manifestContent = manifestContent.replace ('android: versionCode = "1"',
                    String.format ('android: versionCode = "% s"', generatedCode))
            // Заменяет манифест новым текстом.файл (manifestPath) .write (manifestContent)
        }
    }
}
 

Исправленные известные проблемы

В этом разделе описаны известные проблемы, исправленные в последней версии. Если у вас возникла какая-либо из этих проблем, вам следует обновить Android Studio до последней стабильной или предварительной версии.

Исправлено в Android Studio 4.1

  • Перезагрузите, чтобы применить настройки памяти из предыдущей версии IDE: После обновляя Android Studio, вам необходимо перезапустить Android Studio, чтобы применить любые настройки памяти перенесены из более ранней версии IDE.

Исправлено в Android Studio 3.6

  • Ошибка установки APK в LineageOS : развертывание вашего приложения на устройствах запуск определенных версий LineageOS или CyanogenMod может дать сбой и выбросить исключение INSTALL_PARSE_FAILED_NOT_APK .

    В Android Studio 3.6 Beta 1 и более поздних версиях среда IDE обрабатывает это исключение с помощью выполнение полной установки приложения при развертывании приложения на устройства LineageOS или CyanogenMod, что может привести к более длительному развертыванию раз.

Исправлено в Android Studio 3.5.2

  • Неработающий стиль кода XML : при редактировании кода XML среда IDE применила неправильный стиль кода, когда вы выбрали Code> Reformat Code из строка меню.

Исправлено в Android Studio 3.3.1

  • Ошибки нехватки памяти при сканировании проектов на основе C ++ : Когда Gradle сканирует проект, содержащий код C ++ в нескольких местах на одном диске, сканирование включает все каталоги ниже первого общего каталога.Сканирование большое количество каталогов и файлов может привести к ошибкам нехватки памяти.

    Для получения дополнительной информации по этой проблеме прочтите ошибка, связанная с проблема.

Трансляция с мобильных устройств или компьютеров на телевизор не выполняется.

Каждый из этих шагов представляет собой возможное решение этой проблемы, проверьте, решена ли проблема после завершения каждого шага.

  • Убедитесь, что ваше устройство и телевизор подключены к одной домашней сети.

  • Убедитесь, что приложение со встроенным Chromecast или Google Cast Receiver не отключено в Android TV ™.
    1. Нажмите кнопку HOME на пульте дистанционного управления.
    2. Выберите Настройки .
    3. Следующие шаги будут зависеть от параметров меню вашего телевизора:
      • Выбрать приложений - Просмотреть все приложения - Показать системные приложения - Встроенный Chromecast или Приемник Google Cast - Включить . (Android ™ 9)
      • Выберите приложений Встроенный Chromecast или Приемник Google Cast Включить . (Android 8.0 или более ранняя версия)
  • Очистить данные в приложениях с функцией Cast, Android System WebView и Встроенный Chromecast .
    1. Нажмите кнопку HOME на пульте дистанционного управления.
    2. Выберите Настройки .
    3. Следующие шаги будут зависеть от параметров меню вашего телевизора:
      • Выберите приложений - Просмотреть все приложения - Показать системные приложения - Приложения с функциями трансляции - Очистить данные - OK . (Android 9)
      • Выберите приложений - Приложения с функциями трансляции - Очистить данные - OK . (Android 8.0 или более ранняя версия)
      ПРИМЕЧАНИЯ:
  • Перезагрузите телевизор.
    Для получения информации о том, как сбросить настройки телевизора, см .: Как перезапустить (сбросить) Android TV?

  • Перезагрузите устройство.
    ПРИМЕЧАНИЕ. Для мобильного устройства: временно выключите мобильное устройство и подождите примерно одну минуту, прежде чем снова включить его.

  • Обновите программное обеспечение телевизора до последней версии.
    Для получения информации о том, как выполнить обновление, см .: Как выполнить обновления прошивки / программного обеспечения для моего Android TV?

  • Используйте следующую процедуру для удаления обновлений для Android System WebView и Chromecast встроенный .
    После удаления обновлений перезагрузите телевизор и обновите эти два приложения до последней версии.
    1. Нажмите кнопку HOME на пульте дистанционного управления.
    2. Выберите Настройки .
    3. Следующие шаги будут зависеть от параметров меню вашего телевизора:
      • Выбрать приложений - Просмотреть все приложения - Показать системные приложения - Android System WebView - Удалить обновления - OK . (Android 9)
      • Выберите приложений - Android System WebView - Удалите обновления - OK . (Android 8.0 или более ранняя версия)
    4. Сделайте то же самое для со встроенным Chromecast .
    5. После удаления обновлений перезагрузите телевизор.
    6. Обновите два вышеуказанных приложения до последней версии из магазина Google Play .
  • Из Мои приложения в приложении Google Play Store обновите все приложения, установленные на телевизоре, до последней версии.

  • Убедитесь, что на вашем устройстве и телевизоре установлены правильные настройки времени.
    Чтобы установить дату и время на телевизоре, выполните следующие действия: Как настроить дату и время
    Примечание: Если вы столкнулись с состоянием подключения к Интернету «Подключено, нет Интернета», убедитесь, что настройки времени на телевизоре установлены. в сетевое время.Для получения дополнительной информации см .: Как устранить сообщение об ошибке

    [Сеть не подключена]
  • Только для мобильных устройств: Закройте приложение с поддержкой Chromecast (с поддержкой Google Cast) на мобильном устройстве и перезапустите его.
    ПРИМЕЧАНИЕ: Для получения подробной информации о том, как завершить и перезапустить приложения, обратитесь к инструкции по эксплуатации вашего мобильного устройства.

  • Перезагрузите беспроводной маршрутизатор. (Отключите маршрутизатор и подождите примерно одну минуту перед повторным включением питания.)

  • ошибок | Облачные API | Google Cloud

    В этой главе представлен обзор модели ошибок для API Google. Это также предоставляет разработчикам общие рекомендации по правильному созданию и обрабатывать ошибки.

    API Google используют простую модель ошибок, не зависящую от протокола, что позволяет нам предлагать единообразный опыт работы с разными API, разными протоколами API (например, gRPC или HTTP) и различные контексты ошибок (например, асинхронный, пакет или ошибки рабочего процесса).

    Модель ошибки

    Модель ошибок для API Google логически определяется google.rpc.Status , экземпляр которого возвращается клиенту при возникновении ошибки API. В следующий фрагмент кода показывает общий дизайн модели ошибки:

      пакет google.rpc;
    
    // Тип `Status` определяет модель логической ошибки, подходящую для
    // различные среды программирования, включая REST API и RPC API.
    message Status {
      // Простой код ошибки, который может легко обработать клиент.В
      // фактический код ошибки определяется `google.rpc.Code`.
      int32 code = 1;
    
      // Сообщение об ошибке для разработчиков на английском языке. Должно
      // оба объясняют ошибку и предлагают действенное решение для нее.
      строка message = 2;
    
      // Дополнительная информация об ошибке, которую клиентский код может использовать для обработки
      // ошибка, например информация о повторной попытке или ссылка на справку.
      повторяется google.protobuf.Any details = 3;
    }
      

    Поскольку большинство API Google используют ресурсно-ориентированный дизайн API, обработка ошибок следует тому же принципу проектирования, используя небольшой набор стандартных ошибок с большое количество ресурсов.Например, вместо определения разных видов ошибки "не найдено", сервер использует один стандартный google.rpc.Code.NOT_FOUND код ошибки и сообщает клиенту, какой конкретный ресурс не был найден. В меньшее количество ошибок снижает сложность документации, обеспечивает лучшую идиоматические сопоставления в клиентских библиотеках и упрощают клиентскую логику при этом не ограничивая включение полезной информации.

    Примечание: При использовании gRPC ошибки включаются в заголовки, а общие заголовки - в ответы ограничены 8 КБ (8 192 байта).Убедитесь, что ошибки не превышают Размером 1-2 КБ. Коды ошибок

    API Google должны использовать канонические коды ошибок, определенные google.rpc. Код . Отдельные API должны избегать определения дополнительных кодов ошибок, поскольку разработчики вряд ли напишут логику для обработки большого количества ошибок коды. Для справки: обработка в среднем 3 кодов ошибок на вызов API означают, что большая часть логики приложения предназначена только для обработки ошибок, что не было бы хороший опыт разработчика.

    Сообщения об ошибках

    Сообщение об ошибке должно помочь пользователям понять и устранить ошибку API. легко и быстро. В общем, при написании учитывайте следующие рекомендации. сообщения об ошибках:

    • Не предполагайте, что пользователь является опытным пользователем вашего API. Пользователи могут быть клиентами разработчики, операторы, ИТ-персонал или конечные пользователи приложений.
    • Не предполагайте, что пользователь знает что-либо о вашей реализации службы или знаком с контекстом ошибок (например, с анализом журнала).
    • По возможности сообщения об ошибках должны быть составлены таким образом, чтобы технический пользователь (но не обязательно разработчик вашего API) может ответить на ошибку и поправьте это.
    • Составьте краткое сообщение об ошибке. При необходимости укажите ссылку, где запутанный читатель может задавать вопросы, оставлять отзывы или получать дополнительную информацию, не вписывается в сообщение об ошибке. В противном случае используйте поле сведений, чтобы расширять.
    Предупреждение: Сообщения об ошибках не являются частью поверхности API.Они подлежат изменяется без предварительного уведомления. Код приложения не должен иметь жесткой зависимости о сообщениях об ошибках.

    Сведения об ошибке

    API Google определяют набор стандартных полезных данных ошибок для сведений об ошибках, которые вы можно найти в google / rpc / error_details.proto. Они охватывают наиболее распространенные ошибки API, такие как сбой квоты и недопустимые параметры. Как и коды ошибок, разработчикам следует использовать эти стандартные полезные нагрузки, когда это возможно.

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

    Вот несколько примеров error_details полезных нагрузок:

    • ErrorInfo : Предоставляет структурированную информацию об ошибках, которая является стабильной и расширяемый .
    • RetryInfo : описывает, когда клиенты могут повторить неудачный запрос, может быть вернулся на код .НЕДОСТУПЕН код или . АКТУАЛЬНО
    • QuotaFailure : описывает, как не удалось выполнить проверку квоты, может быть возвращен Код .RESOURCE_EXHAUSTED
    • BadRequest : описывает нарушения в запросе клиента, может быть возвращен Код .INVALID_ARGUMENT

    Информация об ошибке

    ErrorInfo это особый вид полезной нагрузки ошибки. Он обеспечивает стабильный и расширяемый информация об ошибках, от которой могут зависеть как люди, так и приложения.Каждый ErrorInfo содержит 3 части информации: домен ошибки, ошибка. причина и набор метаданных об ошибках, таких как этот пример. Для получения дополнительной информации см. ErrorInfo определение.

    Для API Google основным доменом ошибки является googleapis.com , а домен соответствующие причины ошибки определены перечислением google.api.ErrorReason . Для получения дополнительной информации см. google.api.ErrorReason определение.

    Локализация ошибки

    Сообщение Поле в гугл.rpc.Status предназначен для разработчиков, а код должен быть на английском языке.

    Если необходимо сообщение об ошибке для пользователя, используйте google.rpc.LocalizedMessage как ваше поле данных. В то время как поле сообщения в google.rpc.LocalizedMessage можно локализовать, убедитесь, что поле сообщения в google.rpc.Status находится на английском языке.

    По умолчанию служба API должна использовать локаль аутентифицированного пользователя или HTTP Accept-Language заголовок или параметр language_code в запросе к определить язык локализации.

    Отображение ошибок

    API Google доступны в различных средах программирования. Каждый среда обычно имеет собственный способ обработки ошибок. Следующие разделы объясняют, как модель ошибок отображается в часто используемых средах.

    Отображение HTTP

    В то время как сообщения proto3 имеют собственную кодировку JSON, платформа API Google использует другая схема ошибок для API Google JSON HTTP для обратной совместимости причины.

    Схема:

      // Формат ошибки v2 для API REST Google JSON.//
    // ПРИМЕЧАНИЕ. Эта схема не используется для других проводных протоколов.
    message Error {
      // Это сообщение имеет ту же семантику, что и `google.rpc.Status`. Он использует HTTP
      // код состояния вместо кода состояния gRPC. Имеет дополнительное поле status.
      // для обратной совместимости с клиентскими библиотеками Google API.
      message Status {
        // Код состояния HTTP, соответствующий `google.rpc.Status.code`.
        int32 code = 1;
        // Это соответствует `google.rpc.Status.message`.
        строка message = 2;
        // Это версия перечисления для `google.rpc.Status.code`.
        google.rpc.Code status = 4;
        // Это соответствует `google.rpc.Status.details`.
        повторяется google.protobuf.Any details = 5;
      }
      // Фактическая полезная нагрузка ошибки. Вложенная структура сообщения предназначена для обратного
      // совместимость с клиентскими библиотеками Google API. Это также делает ошибку
      // более читабельный для разработчиков.
      Ошибка статуса = 1;
    }
      

    Пример:

      $ curl 'https://translate.googleapis.com/language/translate/v2?key=invalid&q=hello&source=en&target=es&format=text&$.xgafv = 2 '
    {
      "ошибка": {
        «код»: 400,
        "message": "Ключ API недействителен. Передайте действующий ключ API.",
        "status": "INVALID_ARGUMENT",
        "подробности": [
          {
            "@type": "type.googleapis.com/google.rpc.ErrorInfo",
            "причина": "API_KEY_INVALID",
            "домен": "googleapis.com",
            "метаданные": {
              "сервис": "translate.googleapis.com"
            }
          }
        ]
      }
    }
      

    Отображение gRPC

    Различные протоколы RPC по-разному отображают модель ошибки.Для gRPC, модель ошибок изначально поддерживается сгенерированными код и библиотека времени выполнения на каждом поддерживаемом языке. Вы можете узнать больше в документации API gRPC. Например, см. GRPC Java io.grpc.Status .

    Отображение клиентской библиотеки

    Клиентские библиотеки Google могут по-разному отображать ошибки для разных языков и соответствовать устоявшимся идиомам. Например, google-cloud-go библиотека вернет ошибку, которая реализует тот же интерфейс, что и гугл.rpc.Status , пока Google-облако-Java вызовет исключение.

    Обработка ошибок

    Ниже представлена ​​таблица, содержащая все коды ошибок gRPC, определенные в google.rpc.Code и краткое описание их причины. Чтобы обработать ошибку, вы можете проверить описание возвращенного кода состояния и соответствующим образом измените свой вызов.

    HTTP gRPC Описание
    200 ОК Нет ошибки.
    400 INVALID_ARGUMENT Клиент указал недопустимый аргумент. Проверьте сообщение об ошибке и сведения об ошибке для получения дополнительной информации.
    400 НЕИСПРАВНОСТЬ Запрос не может быть выполнен в текущем состоянии системы, например при удалении непустого каталога.
    400 OUT_OF_RANGE Клиент указал недопустимый диапазон.
    401 НЕАКТИВНО Запрос не аутентифицирован из-за отсутствия, недопустимого или просроченного токена OAuth.
    403 РАЗРЕШЕНИЕ_ ОТКЛОНЕНО У клиента недостаточно прав. Это может произойти из-за того, что токен OAuth не имеет нужных областей, у клиента нет разрешения или API не включен.
    404 НЕ НАЙДЕНО Указанный ресурс не найден.
    409 ПРЕРЫВАНИЕ Конфликт параллелизма, например конфликт чтения-изменения-записи.
    409 УЖЕ_ЕСТЬ Ресурс, который клиент пытался создать, уже существует.
    429 RESOURCE_EXHAUSTED Либо исчерпана квота ресурсов, либо достигнут предел скорости. Для получения дополнительной информации клиент должен найти подробную информацию об ошибке google.rpc.QuotaFailure.
    499 ОТМЕНЕНО Запрос отменен клиентом.
    500 ПОТЕРЯ ДАННЫХ Безвозвратная потеря или повреждение данных. Клиент должен сообщить об ошибке пользователю.
    500 НЕИЗВЕСТНО Неизвестная ошибка сервера. Обычно ошибка сервера.
    500 ВНУТРЕННИЙ Внутренняя ошибка сервера.Обычно ошибка сервера.
    501 НЕ ВЫПОЛНЕНО Метод API не реализован сервером.
    502 НЕТ Сетевая ошибка произошла до достижения сервера. Обычно это сбой в сети или неправильная конфигурация.
    503 НЕДОСТУПЕН Служба недоступна. Обычно сервер не работает.
    504 DEADLINE_EXCEEDED Превышен срок запроса.Это произойдет только в том случае, если вызывающий установит крайний срок, который короче крайнего срока по умолчанию для метода (т. Е. Запрошенного крайнего срока недостаточно для того, чтобы сервер обработал запрос), и запрос не был завершен в пределах крайнего срока.
    Предупреждение: API Google могут одновременно проверять несколько предварительных условий для API запрос. Возврат одного кода ошибки не подразумевает выполнение других предварительных условий. довольный. Код приложения не должен зависеть от предварительного условия заказа. чеки.

    Ошибка повторной попытки

    Клиенты могут повторить попытку 503 НЕДОСТУПНЫХ ошибок с экспоненциальным откатом. Минимальная задержка должна составлять 1 с, если не указано иное. По умолчанию повторение повторения должно быть однократным, если иное не задокументировано.

    Для 429 ошибок RESOURCE_EXHAUSTED клиент может повторить попытку на более высоком уровне с задержкой минимум 30 секунд. Такие попытки полезны только при длительной работе. фоновые работы.

    Для всех остальных ошибок повторная попытка может быть неприменима.Сначала убедитесь, что ваш запрос идемпотентно, и см. google.rpc.RetryInfo для руководства.

    Распространение ошибок

    Если ваша служба API зависит от других служб, не следует слепо распространять ошибки этих сервисов вашим клиентам. При переводе ошибок мы предлагаем следующие:

    • Скрыть детали реализации и конфиденциальную информацию.
    • Укажите сторону, виновную в ошибке. Например, сервер, который получает ошибку INVALID_ARGUMENT от другой службы должна распространяться ВНУТРЕННИЙ своему вызывающему абоненту.

    Воспроизведение ошибок

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

    Мы рекомендуем использовать oauth3l и curl -v и Системные параметры для воспроизведения ошибок с помощью API Google. Вместе они могут воспроизводить практически все запросы Google API, и предоставить вам подробную отладочную информацию.Для получения дополнительной информации см. соответствующие страницы документации для API, который вы вызываете.

    Примечание: Для устранения неполадок вы должны включить в свой запрос и $. Xgafv = 2 URL-адреса для выбора формата ошибки v2. Некоторые API Google используют формат ошибки v1 от по умолчанию из соображений совместимости.

    Создание ошибок

    Если вы разработчик серверов, вы должны генерировать ошибки с достаточным количеством информация, которая поможет разработчикам клиентов понять и решить проблему. На в то же время вы должны знать о безопасности и конфиденциальности пользовательских данных, и избегать раскрытия конфиденциальной информации в сообщениях об ошибках и подробных сведениях об ошибках, поскольку ошибки часто регистрируются и могут быть доступны другим пользователям.Например, сообщение об ошибке типа «IP-адрес клиента отсутствует в списке разрешений 128.0.0.0/8» показывает информация о политике на стороне сервера, которая может быть недоступна для пользователь, имеющий доступ к журналам.

    Чтобы генерировать правильные ошибки, сначала необходимо ознакомиться с google.rpc.Code to выберите наиболее подходящий код ошибки для каждого состояния ошибки. Сервер приложение может параллельно проверять несколько условий ошибки и возвращать первый.

    В следующей таблице перечислены все коды ошибок и пример исправной ошибки. сообщение.

    HTTP gRPC Пример сообщения об ошибке
    400 INVALID_ARGUMENT Поле запроса x.y.z равно xxx, ожидается одно из [yyy, zzz].
    400 НЕИСПРАВНОСТЬ Ресурс xxx - непустой каталог, поэтому его нельзя удалить.
    400 OUT_OF_RANGE Параметр age вне диапазона [0, 125].
    401 НЕАКТИВНО Неверные учетные данные для аутентификации.
    403 РАЗРЕШЕНИЕ_ ОТКЛОНЕНО В разрешении «xxx» отказано для ресурса «yyy».
    404 НЕ НАЙДЕНО Ресурс «xxx» не найден.
    409 ПРЕРЫВАНИЕ Не удалось установить блокировку ресурса «xxx».
    409 УЖЕ_ЕСТЬ Ресурс «xxx» уже существует.
    429 RESOURCE_EXHAUSTED Превышен предел квоты «xxx».
    499 ОТМЕНЕНО Запрос отменен клиентом.
    500 ПОТЕРЯ ДАННЫХ См. Примечание.
    500 НЕИЗВЕСТНО См. Примечание.
    500 ВНУТРЕННИЙ См. Примечание.
    501 НЕ ВЫПОЛНЕНО Метод «xxx» не реализован.
    503 НЕДОСТУПЕН См. Примечание.
    504 DEADLINE_EXCEEDED См. Примечание.
    Примечание: Поскольку клиент не может исправить ошибку сервера, это бесполезно генерировать дополнительные сведения об ошибке. Чтобы избежать утечки конфиденциальной информации под при возникновении ошибок рекомендуется не создавать никаких сообщений об ошибках, а только сгенерируйте Google.Подробные сведения об ошибке rpc.DebugInfo . DebugInfo специально предназначен только для ведения журнала на стороне сервера, и не должен отправлять клиенту.

    Ошибка полезной нагрузки

    Пакет google.rpc определяет набор стандартных полезных данных ошибок, которые предпочтительнее настраиваемой полезной нагрузки ошибок. В следующей таблице перечислены все коды ошибок. и соответствующая ему полезная нагрузка стандартной ошибки, если применимо. Мы рекомендуем продвинутый приложения ищут эти полезные данные ошибок в google.rpc.Status , когда они обрабатывать ошибки.

    HTTP gRPC Рекомендуемое подробное описание ошибки
    400 INVALID_ARGUMENT google.rpc.BadRequest
    400 НЕИСПРАВНОСТЬ google.rpc.PreconditionFailure
    400 OUT_OF_RANGE гугл.rpc.BadRequest
    401 НЕАКТИВНО google.rpc.ErrorInfo
    403 РАЗРЕШЕНИЕ_ ОТКЛОНЕНО google.rpc.ErrorInfo
    404 НЕ НАЙДЕНО google.rpc.ResourceInfo
    409 ПРЕРЫВАНИЕ google.rpc.ErrorInfo
    409 УЖЕ_ЕСТЬ гугл.rpc.ResourceInfo
    429 RESOURCE_EXHAUSTED google.rpc.QuotaFailure
    499 ОТМЕНЕНО
    500 ПОТЕРЯ ДАННЫХ google.rpc.DebugInfo
    500 НЕИЗВЕСТНО google.rpc.DebugInfo
    500 ВНУТРЕННИЙ гугл.rpc.DebugInfo
    501 НЕ ВЫПОЛНЕНО
    503 НЕДОСТУПЕН google.rpc.DebugInfo
    504 DEADLINE_EXCEEDED google.rpc.DebugInfo

    Приложение Shell с Shell EasyPay ™ - Загрузки для iOS и Android

    Представляем Shell EasyPay в приложении Shell, наиболее удобном и безопасном способе оплаты покупок Shell на насосе или в магазине.Доступный сейчас как часть нового приложения Shell, Shell EasyPay позволяет вам платить, как вы хотите, с помощью любой поддерживаемой потребительской карты Visa, Mastercard, AMEX, Discover, дебетовой карты Interac или UnionPay. Просто выберите свой насос, количество заправки, добавьте автомойку (если есть) и завершите платеж - все, что осталось сделать, это выйти и заправить. Вам нужно перекусить в дорогу? Используйте Shell EasyPay, чтобы быстро и легко совершать покупки в магазине - выбор за вами!

    Shell EasyPay делает ваши поездки проще и удобнее благодаря этим замечательным функциям нового приложения Shell:

    • Pick Your Payment - Shell EasyPay совместим практически с любой дебетовой или кредитной картой, включая Visa, Mastercard, Дебетовая карта American Express, Discover, UnionPay или Interac от поддерживающих финансовых учреждений.Shell EasyPay также позволяет расплачиваться любой картой поддерживающих финансовых учреждений в вашем кошельке Apple Pay или Google Pay.
    • Свяжите свою учетную запись AIR MILES - Добавьте свою учетную запись AIR MILES и никогда не упустите возможность получить премиальные мили AIR MILES, а также получите доступ к эксклюзивным специальным предложениям только для пользователей Shell EasyPay ™. Хотите использовать наличные мили для покупки? Сделайте это прямо из приложения при оплате на помпе.
    • Отслеживание квитанций и кодов автомойки - Когда вы используете Shell EasyPay, ваши чеки и коды автомойки сохраняются в приложении, поэтому вы всегда будете иметь историю покупок, когда и где вам это нужно.
    • Найдите ближайшую станцию ​​- Используйте локатор станций, чтобы найти ближайшее к вам местоположение с поддержкой Shell EasyPay.
    • Получайте последние новости и предложения - Всегда будьте первым, кто узнает о последних новостях и предложениях Shell.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *