Android Studio отказывается создавать и устанавливать какое-либо приложение на мои телефоны

С тех пор, как я обновил Android Studio до версии 3.5, мне не удалось запустить какое-либо приложение на нескольких моих физических телефонах (Redmi Note 4 и OnePlus6). Приложение не устанавливается ни на один из них. Но он устанавливается на эмулируемые устройства тех же соответствующих версий (Android 24 и Android 28), поэтому проблема не в коде.

Более того, я пытался собрать предыдущие версии своего приложения, хранящиеся в Git, и теперь Android Studio не собирает приложение, показывающее «ошибку связывания». В то время как та же самая версия кода работала нормально несколько месяцев назад (до обновления студии Android). Вот почему я думаю, что проблема как-то связана с Android Studio, а не с кодом...

Вещи, которые я пробовал

  1. Отключить мгновенный запуск (больше не вариант в Android Studio> = 3.5.1)

  2. Включите отладку по USB, подключитесь с помощью устройства в режиме «Передача файлов», а не в режиме «Зарядка устройства».

  3. Отключите оптимизацию MIUI и перезагрузитесь.

  4. Удалите приложение и установите заново

  5. Создайте apk, перенесите apk на устройство, а затем попробуйте установить (это работает на OnePlus 6, но не на Redmi Note 4)

Приложения, которые я пробовал, нацелены на Sdk >= 27 и используют androidx. Однако я попытался вернуться к предыдущей версии приложения, которая не использовала androidx (и использовала устаревшие библиотеки поддержки), но все равно получала ту же ошибку.

Моя система — Ubuntu 18.04, а текущая версия студии Android — 3.5.3.

Ошибки, которые я получаю, включают:

  • INSTALL_FAILED_USER_RESTRICTED
  • Устройство не найдено

ОБНОВЛЕНИЕ: - Только что попытался установить на OnePlus6, там тоже не устанавливается. Раньше я тестировал только Redmi Note 4. - Пробовал удалить и переустановить приложение, создать apk и перенести его на телефон, а затем установить вручную. - Это происходит во всех проектах, по крайней мере, для Redmi Note 4. Я попробовал это с одним из моих курсовых проектов, те же/похожие проблемы.

Я предполагаю, что это проблемы с обновлением Android Studio и недавним переходом на androidx из «устаревших» библиотек поддержки.


person Palash Aggrawal    schedule 13.12.2019    source источник
comment
Какой точный лог? Ошибка связывания часто означает, что в вашем коде есть проблема.   -  person CoderCharmander    schedule 13.12.2019
comment
Пробовали ли вы удалить приложение с телефона и начать заново? Иногда я получаю частично установленное приложение, например, появляется только имя пакета, и мне нужно удалить его, чтобы оно заработало.   -  person Marc Laliberté    schedule 13.12.2019
comment
Существуют ли две разные учетные записи, такие как пользователь и владелец. Попробуйте зайти в основной аккаунт и оттуда удалить   -  person Venky    schedule 13.12.2019
comment
@CoderCharmander, ошибка связывания встречается не так часто. И вы правы, это означает проблемы в моем коде. Но это также, кажется, происходит из-за androidx   -  person Palash Aggrawal    schedule 13.12.2019
comment
@MarcLaliberté, да, я пытался удалить и переустановить. Я даже пытался собрать APK, а затем установить его на свой телефон, перенеся APK на свой телефон, а затем установив его. Но я получаю ошибку повреждения пакета на Redmi Note 4 (это работает на OnePlus6)   -  person Palash Aggrawal    schedule 13.12.2019
comment
@Venky Я не думаю, что у Redmi есть учетные записи пользователей / владельцев. Даже если это так, я вошел только с одной учетной записью Mi. Так что я почти уверен, что несколько учетных записей не так   -  person Palash Aggrawal    schedule 13.12.2019


Ответы (2)


Как я это решил:

Отключите "Использовать серверную часть libusb" в меню "Настройки" -> "Сборка, выполнение и развертывание" -> "Отладчик".

Скриншот страницы настроек, где нам нужно отключить использование бэкенда libusb

Извините Android Studio 3.5 за проклятия

Как я нашел решение:

Я проверил журналы студии Android, выбрав «Справка» -> «Сжать журналы и показать в файлах». В открывшейся папке я увидел логи по имени adb.1000.log (т.к. adb - android debug bridge, обрабатывает связь с устройством). В последних нескольких строках я увидел - "чтение передачи не удалось: LIBUSB_TRANSFER_CANCEELLED". Я прочитал здесь о опции libusb

person Palash Aggrawal    schedule 13.12.2019

Вы пытались очистить/перестроить... в /Build/Clean Project, после этого /Build/Rebuild Project и после очистки и перестройки вы можете попробовать в /File/Invalidate caches

person Jan Ellenberger    schedule 14.12.2019
comment
Да, пробовал. Чистая перестройка, даже удаление файлов .idea и воссоздание проекта не помогли из-за вышеуказанной настройки - person Palash Aggrawal; 31.12.2019