Помилка встановлення через: "null" - Android Studio 3.5


83

Я оновив студію Android до версії 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

Ви перевіряли, чи увімкнено миттєвий запуск у вашій Android Studio?
Reaz Murshed

Відповіді:


99

Відкрийте діалогове вікно запуску / налагодження (Windows: Запуск> Редагування конфігурацій)

редагувати програму You> Загальне> Параметри встановлення> Установити прапори .

додати прапорці встановлення -r -t.

Це означає adb install -r -t apkpath

екранний малюнок


2
adb install -r -t apkpathНапевно, цей прапор означає . @ TaseerAhmad
胡 晟 昊

21
-rозначає "замінити існуючу програму". -tозначає "дозволити тестувати пакети"
duckbrain

1
Звідки взявся цей чоловік і як він придумав це рішення? Дайте йому медаль!
0101100101

4
Не працює для мене! :( Будь ласка, подивіться на мою проблему. Вона трохи відрізняється від вашої. Stackoverflow.com/questions/57770464/…
Arsalan Shah

3
Параметр - Запуск> Редагування конфігурацій, якщо версія Windows.
Беатріс Лін

17

Вам потрібно вимкнути "Використовувати серверну систему libusb" у налаштуваннях -> налагоджувач введіть тут опис зображення


Тільки це рішення допомогло - Xubuntu 18.04
Раскілас,

Не можу повірити, що це спрацювало! Android Studio 3.5.1 Android Debug Bridge версія 1.0.41 версія 29.0.5-5949299
Kebab Krabby

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 запропонує замість цього запустити піктограму Run Run. Однак, якщо ви не хочете, щоб підказки виникали щоразу, коли це відбувається, ви можете налаштувати Android Studio на автоматичний перезапуск програми, коли зміни не можуть бути застосовані.

Щоб увімкнути цю поведінку, виконайте такі дії:

  1. Відкрийте діалогове вікно Налаштування або Налаштування:
    • У Windows або Linux на панелі меню виберіть Файл> Налаштування .
    • На macOS виберіть Android Studio> Preferences у рядку меню.
  2. Перейдіть до побудови, виконання, розгортання> розгортання .
  3. Установіть прапорці, щоб увімкнути автоматичний резервний запуск для будь-якої з дій Застосувати зміни.
  4. Клацніть OK.

Знімок екрана, запущений в Linux


1
Я змінив ОС на Linux, і AS 3.5 там прекрасно працює.
Тасіір

4

Існує проблема з Lineage OS, як зазначено командою Google у https://issuetracker.google.com/issues/139782879 :

Ми можемо відтворити його на пристрої з LineageOS. Він не повністю підтримує системний виклик, який ми використовуємо для DeltaInstall.

Очевидного рішення немає (крім видалення файлу .apk із папки збірки або видалення програми).

Нам слід вирішити цю проблему, але, як зараз, LineageOS не матиме DeltaInstall, і завжди потрібно буде виконувати повільнішу повну інсталяцію.

Перехід на значення Nothing, вказане OP, не розгорне APK на пристрої (тому помилка не відображатиметься), тому це не вирішить проблему.

Редагувати:

Це виправлено в Android Studio 3.6.

Дякуємо за відгук. Це слід виправити в останніх версіях 3.6.


4

Будувати> Очистити проект, його робота для мене. Перш ніж змінити інше налаштування, спробуйте це спочатку.

Щасливого кодування :)


3

Я отримав рішення у зміні конфігурації запуску редагування коду в Deploy, виберіть APK за замовчуванням та встановіть прапор = -r -t, а потім подайте заявку на запуск. Додаток буде працювати на всіх пристроях та емуляторі. Я пройшов тестування в OPPO 1 plus, Samsung Tab, Емулятор Також .

Будь ласка, перейдіть до думки, що редагування конфігурації запуску біля кнопки запуску в Android Studio

редагувати додаток> загальне ==> параметри встановлення ==> Установити прапори

додати прапорці встановлення -r -t

-r означає "замінити існуючу програму". -t означає "дозволити тестові пакети"

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


2

У мене теж є така сама проблема після оновлення до 3.5. Мені було цікаво, чи не пощастило вам отримати «Запуск» для роботи з підключеним пристроєм?

ОНОВЛЕННЯ: Я мав змусити це працювати, встановивши "APK із набору додатків" у розділі Параметри інсталяції у діалоговому вікні "Конфігурації запуску / налагодження"


1

Видалення / видалення програми з пристрою вирішило проблему для мене.


Я видалив програму з емулятора API 29, і це допомогло.
CoolMind

1

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

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

Я натиснув значок молотка, щоб відновити програму, а потім її встановити. То я не знаю? Вся платформа робочих місць для андроїда відстій.

Усі ці гроші, поки Google не може найняти або знайти програмістів, настільки добрих, щоб створити власну справжню операційну систему.


0

Я також зіткнувся з тією ж проблемою, я виконав наступні кроки 1) Чистий проект 2) Відновлений проект

Це вирішило мою проблему


0

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


0

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


0

Виконати -> Редагувати конфігурацію -> встановити прапори: -r -t -> Застосувати -> Добре


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 (клавіша праворуч від IDE) -> android -> app -> Tasks -> install -> uninstallAll або ви також можете зробити це за допомогою консолі наступним чином:

    $ ./gradlew uninstallAll



Інші поради:

  • Видаліть і створіть програму знову в конфігурації запуску / налагодження

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

  • Встановіть програму за допомогою іншого фізичного пристрою, версії 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=""to android:appComponentFactory="new", "new"можуть бути будь-які слова


-2

Нарешті, я отримав рішення у зміні конфігурації запуску редагування коду в опції встановлення DEPLOY -> з 4-го варіанту -> (Нічого) варіант -> Застосувати І програма працює належним чином в android studio 3.5. У мобільному та емуляторі також. Це працює належним чином у версії 9 для Android, також це постійне рішення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.