Ошибка установки из-за: 'null' - Android Studio 3.5


83

Я обновил Android Studio до версии 3.5, с тех пор как столкнулся с проблемой установки APK. Это единственный журнал, который показывает:

Installation did not succeed.
The application could not be installed: INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION
Installation failed due to: 'null'
Retry

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

Что я пробовал:

  • Удален файл конфигурации Android Studio.
  • Удалил файлы Gradle из проекта.
  • Аннулированы и сброшены кеши.
  • Почистил / пересобирал проект.
  • Искал похожие проблемы Stackoverflow (ничто не соответствует моей проблеме)
  • Чисто установлен (удалены все файлы, включая SDK) Android Studio 3.5

Обновить

Я установил Linux Mint на свой компьютер и протестировал там AS 3.5, по какой-то причине все работает нормально даже на устройствах с Android 7 и ниже.

Предыдущая ОС: Windows 10 1903

Текущая ОС: Linux Mint 19.2

Я считаю, что эта проблема может исходить от компьютеров Windows.


У меня похожая проблема - но для меня это во INSTALL_PARSE_FAILED_NOT_APKвремя тестирования эспрессо
adek111

Я также получаюINSTALL_PARSE_FAILED_NOT_APK
jobevers

У меня такая же проблема.
Santhosh

14
вау, Google, как сделать этот релиз СТАБИЛЬНЫМ ?!
0101100101

Вы проверяли, включен ли Instant Run в вашей Android Studio?
Реаз Муршед

Ответы:


99

Открыть конфигурацию запуска / отладки диалоговое окно « » (Windows: «Выполнить»> «Изменить конфигурации»)

отредактируйте приложение You> Общие> Параметры установки> Установить флаги .

добавить флаги установки -r -t .

Этот флаг означает adb install -r -t apkpath

экранная картинка


2
adb install -r -t apkpathЯ думаю, это означает . @ TaseerAhmad
胡 晟 昊

21
-rозначает «заменить существующее приложение». -tозначает «разрешить тестовые пакеты»
duckbrain

1
Откуда взялся этот человек и как он думал об этом решении? Дайте ему медаль!
0101100101

4
У меня не работает! :( Взгляните на мою проблему.
Арсалан Шах

3
Параметр «Выполнить»> «Изменить конфигурации», если версия для Windows.
Беатрис Лин

17

Вам нужно отключить "Использовать бэкэнд libusb" в настройках -> отладчик введите описание изображения здесь


Помогло только это решение - Xubuntu 18.04
Раскилас

Не могу поверить, что это сработало! Android Studio 3.5.1 Android Debug Bridge версия 1.0.41 Версия 29.0.5-5949299
Кебаб Крабби

1
Работает как шарм. Я
боролся

1
О, МОЙ БОГ! это решило большую большую проблему. Боролся с этой проблемой месяцами .. Вау!
Vivek

1
Исправлено это для меня в OSx 10.15! Спасибо!
Крис Дженкинс

12

Эта проблема в Android Studio возникает на устройствах ниже API 26(Android 8). Это вызвано заменой InstantRun, известной сейчас как ApplyChanges .

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

  1. Беги дальше API>=26.
  2. После каждого изменения кода редактируйте run configurationизменения deployс APKна App bundleи наоборот. Если я правильно понимаю, это позволит правильно восстановить приложение и исправить ошибку.

Конечно, есть возможность вручную удалить приложение с устройства перед запуском приложения из AndroidStudio.


1
У меня есть устройство Android 9.0 и эта проблема. Однако, когда я смешиваю тесты между эмулятором и реальным устройством, приложение и тесты запускаются довольно часто. Не знаю, почему, но, возможно, это кому-то поможет.
adek111

Может быть, вы сможете успешно перезапустить приложение, API26+если нажмете Apply changesвместо rerun? Это новая кнопка справа от rerun.
mohax

6

Для меня либо удаление приложения, либо очистка проекта «решают» проблему. Чтобы сделать его менее утомительным, я добавил чистую работу для отладки типа сборки, например:

buildTypes {
    ...
    debug {
        clean
    }
    ...
}

4

Прочитав примечания к выпуску, касающиеся применения изменений , я наконец нашел здесь решение: https://developer.android.com/studio/run#apply-changes-run-fallback

Включить резервный запуск для применения изменений

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

Чтобы включить это поведение, выполните следующие действия:

  1. Откройте диалоговое окно настроек или предпочтений:
    • В Windows или Linux выберите Файл> Настройки. в строке меню.
    • В macOS выберите Android Studio> Настройки в строке меню.
  2. Перейдите к Сборке, Выполнению, Развертыванию> Развертывание .
  3. Установите флажки, чтобы включить автоматический откат выполнения для любого из действий «Применить изменения».
  4. Щелкните ОК.

Снимок экрана в Linux


1
Я сменил ОС на Linux, и там нормально работает AS 3.5.
Тасиир

4

Существует проблема с ОС Lineage, о чем говорит команда Google в https://issuetracker.google.com/issues/139782879 :

Мы можем воспроизвести его на устройстве с LineageOS. Он не полностью поддерживает системный вызов, который мы используем для DeltaInstall.

Нет очевидного решения (кроме удаления APK из папки сборки или удаления приложения).

У нас должен быть обходной путь, но на данный момент LineageOS не будет иметь DeltaInstall и всегда будет нуждаться в более медленной полной установке.

Изменение на, Nothingкак указано OP, не приведет к развертыванию APK на устройстве (поэтому ошибка не будет отображаться), поэтому это не решит проблему.

Редактировать:

Это было исправлено в Android Studio 3.6.

Спасибо за ответ. Это должно быть исправлено в последних версиях 3.6.


4

Build> Clean project - это работа для меня. Перед изменением других настроек сначала попробуйте это.

Удачного кодирования :)


3

Я получил решение в изменении конфигурации запуска редактирования кода в Deploy, выберите Default APK и установите flag = -r -t, а затем Apply для запуска. Приложение будет работать на всех устройствах и в эмуляторе. Я тестировался в OPPO 1 plus, Samsung Tab, Emulator .

Пожалуйста, идите, подумайте, что редактировать конфигурацию запуска рядом с кнопкой запуска в Android Studio

редактировать приложение> общие ==> параметры установки ==> установить флаги

добавить флаги установки -r -t

-r означает «заменить существующее приложение». -t означает "разрешить тестовые пакеты"

введите описание изображения здесь


2

У меня тоже такая же проблема после обновления до 3.5. Мне было интересно, повезло ли вам заставить Run работать с подключенным устройством?

ОБНОВЛЕНИЕ: я должен был заставить это работать, установив «APK из пакета приложений» в параметрах установки в диалоговом окне «Запуск / отладка конфигураций».


1

Удаление / удаление приложения с устройства устранило проблему для меня.


Я удалил приложение из эмулятора API 29, и это помогло.
CoolMind

1

Добавьте " чистую " зависимость задачи Gradle перед установкой / запуском ваших apks, используя конфигурацию ниже.

project.afterEvaluate {
    android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def capitalizedVariant = variant.name.capitalize()
            def assembleVariantTask = project.tasks."assemble${capitalizedVariant}"
            assembleVariantTask.dependsOn clean
        }
    }
}

Скопируйте и вставьте приведенный выше код в свой app/build.gradleфайл, это работает для всех вариантов сборки.

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

assembleDebug.dependsOn clean
assembleRelease.dependsOn clean

1

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


1

Я также получил эту ошибку, когда запустил приложение на реальном xiaomi pocophone 1 и решил эту проблему, запустив приложение сначала на эмуляторе, а затем на моем xiaomi pocophone 1


1
splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a','x86_64'
        universalApk true
    }
}

Из-за различных конструкций, таких как armeabi, x86, armeabi-v7a, x86_64 и arm64-v8a, мы должны добавить приведенную выше конфигурацию в файл build.gradle.


0

Наконец-то я нашел решение

просто установите v2SigningEnabled true

 signingConfigs {
    release {
        v2SigningEnabled true
    }
}

0

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

Перейдите к, Android Studio -> Preferenceа затем снимите отметку со следующего под Deployments.

введите описание изображения здесь

Вот что нового в Android Studio 3.5 относительно этого, что поможет вам лучше понять эту функцию.

введите описание изображения здесь


0

Попробуйте запустить команду "adb devices", если на выходе пусто, то переподключите устройство. Это помогло мне с той же ошибкой. Android studio 3.5 не определяет, что устройство отключено.


0

Я удалил приложение из эмулятора, запустил и все вернулось в норму


0

Для меня minSdkVer = 22, tarSdkVer = 28запустить Gradle -> app -> Tasks -> build -> clean && cleanBuildCacheдействие, проблема решена.


0

Я нажал значок молотка, чтобы восстановить приложение, после чего оно установилось. Так я не знаю? Вся платформа для взлома Android - отстой.

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


0

Я также столкнулся с той же проблемой, я выполнил следующие шаги 1) Очистить проект 2) Восстановить проект

Это решило мою проблему


0

В моем случае я не могу решить все вышеперечисленные ответы, поэтому я нашел другой способ. Наконец, я нашел решение. Просто найдите правильные драйверы телефона. Мой телефон для разработки - Samsung Galaxy Note 2 (МОДЕЛЬ: GT-N7105 / Android 4.1.2) . Я просто делюсь своим решением, как я это решил. Надеюсь сэкономить ваше время.


0

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



0

В моем случае это работает только при отключении проверки подписи APK:

$ adb shell settings put global verifier_verify_adb_installs 0

И используя -r -tупомянутые выше флаги


0

Эта ошибка все еще есть на моей Mac OS, когда я получаю новое реальное устройство и пытаюсь установить apk из Android Studio 3.5 - и я нахожу уродливый способ исправить - откройте терминал в студии и следуйте:

cd app/build/outputs/apk/debug
adb install -r -t your_app_name.apk

И это нужно делать с каждым проектом и каждым устройством !!

Отредактировано:

В конце концов я установил

Android Studio 3.6 Canary

  • это более рабочая версия чем 3.5

Но все же нужно добавить в установочные флаги -r -t


Остается дождаться «стабильной» версии 3.6.
Тасиир

0

У меня возникла эта проблема несколько минут назад, когда я попытался запустить свое приложение на реальном устройстве и остановил сборку gradle до ее завершения. Я только что удалил приложение на устройстве и перезапустил приложение как на AVD, так и на реальном устройстве (одновременно), и это сработало. Надеюсь, это сработает и для вас


0

Основное решение

  1. Файл -> Настройки -> Сборка, выполнение, развертывание -> Отладчик > ОтключитьUse libusb backend

  2. Gradle (Flap справа от IDE) -> android -> app -> Tasks -> install -> uninstallAll, или вы также можете сделать это с консоли следующим образом:

    $ ./gradlew uninstallAll



Другие советы:

  • Удалите и снова создайте приложение в Run / Debug Configuration

    • Параметры установки -> Проверить установку для всех пользователей
  • Конфигурация запуска / отладки -> Параметры запуска> Запуск: указанное действие> Выбрать действие

  • Установите приложение, используя другое физическое устройство, версию IDE или ПК

  • Переустановите IDE и удалите .android

  • Повторите попытку с основным решением


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

$ adb install -r -t absolute-path.apk

$ adb shell am start -n "com.package.flavor.env/.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

GL

Источник


-1

попробуйте сменить android: appComponentFactory=""на android:appComponentFactory="new", "new"можно любые слова


-2

Наконец, я получил решение в изменении конфигурации запуска редактирования кода в параметре установки DEPLOY -> из выбора 4-го варианта -> (Ничего) вариант -> Применить. И приложение работает правильно в Android Studio 3.5. В мобильном телефоне и в эмуляторе тоже. Это работает правильно и в версии Android 9. Это постоянное решение.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.