Как решить ошибку INSTALL_FAILED_DEXOPT?

Я разрабатываю приложение для Android с использованием Android 2.2, размер APK моего приложения составляет 22,5 МБ, и я хотел бы создать новую сборку для планшета Samsung. Я получил следующую ошибку:

INSTALL_FAILED_DEXOPT

Как решить такую ​​ошибку?


person john    schedule 01.03.2011    source источник
comment
Удалось ли вам успешно установить это приложение на другие устройства, кроме планшета Samsung?   -  person Will Tate    schedule 01.03.2011
comment
Вам нужно вставить вывод logcat, созданный при сбое установки.   -  person fadden    schedule 01.03.2011
comment
У меня была такая же проблема на устройстве, которое я тестировал (HTC Droid Eris). У меня была ранее установленная версия моего приложения на телефоне, я просто удалил и переустановил, и все было в порядке.   -  person ninjasense    schedule 13.06.2011
comment
Удаление и повторная установка приложения всегда работают. Стирание пользовательских данных или воссоздание AVD — все это просто делает то же самое более трудоемким способом. Вопрос в том, есть ли вариант лучше и быстрее?   -  person bschandramohan    schedule 29.12.2011
comment
@ChandraMohan, это НЕ правда. Перестаньте пытаться сделать это правдой. Я отформатировал свое устройство и попытался переустановить приложение. Все равно выдает эту ошибку!   -  person Artiom Chilaru    schedule 15.01.2012
comment
Просто измените рабочее пространство и должно работать нормально.   -  person Deepak Goel    schedule 15.03.2012
comment
Это зависит от того, что я выключил eclipse и запустил его нормально, но вам нужно будет удалить старую версию, и тогда у вас больше не должно быть проблем ... Настройки-->Приложения-->Управление приложениями-->[Найти и удалить ваш Приложение] Ошибки INSTALL_FAILED_DEXOPT не должны возникать. Нравится   -  person Ashishsingh    schedule 20.04.2012
comment
Удаление приложения помогло мне   -  person Lestat    schedule 27.09.2013
comment
logcat - ваш друг здесь. Смотрите мой ответ ниже   -  person Dori    schedule 18.10.2013
comment
Это решило мою проблему!!! [введите описание ссылки здесь][1] [1]: stackoverflow.com/a/13556519/2519412   -  person shimi_tap    schedule 11.02.2014
comment
Освобождение места на моем Nexus One решило эту проблему для меня.   -  person TheIT    schedule 10.04.2014
comment
Одной из возможных проблем может быть то, что ваш apk больше не подходит для установки, поэтому вы получаете эту ошибку. Возможный дубликат этого вопроса. Решение — проверить apk с помощью apkanalyzer или с помощью программы, которой вы его подписали. Всего наилучшего!   -  person Phume    schedule 12.02.2020


Ответы (45)


Перезапуск эмулятора из Android SDK and AVD Manager и выбор опции Wipe User Data решили эту проблему для меня.

Вы можете найти вариант, выделенный на приведенном ниже изображении:

Очистить данные пользователя при запуске эмулятора Android

person Vikas Patidar    schedule 17.03.2011
comment
А если это мой телефон, а не эмулятор? - person mtmurdock; 08.12.2014
comment
@mtmurdock попробуйте adb kill-server, затем adb start-server должно решить вашу проблему. Может быть старое приложение существует, тогда сначала удалите его. - person Vikas Patidar; 09.12.2014
comment
@mtmurdock Вы, наверное, пытались, но у меня сработала перезагрузка телефона :) - person Dunc; 10.08.2016
comment
Убить сервер, а затем запустить, у меня не сработало, перезапуск эмулятора и стирание данных на самом деле у меня работает. - person Shuvo; 31.10.2018
comment
Это сработало для меня, и я только что установил новый эмулятор. Очень странно - person John Harding; 06.12.2020

Это, казалось, было связано с дисковым пространством для меня. Недавно запущенный эмулятор 5.1 загружается с ошибкой «недостаточно места на диске» — и, глядя на свойства эмулятора, пространство по умолчанию, выделенное для внутренней памяти, составляет 800 МБ, что кажется небольшим.

Поэтому решением было увеличить это (я перешел на 4 ГБ). Как ни странно, эмулятор по-прежнему загружается с тем же предупреждением о свободном месте на диске, но сброс настроек к заводским настройкам («Настройки» -> «Резервное копирование и восстановление» внутри эмулятора) полностью решил эту проблему для меня.

Просто немного странно, что он не работает из коробки с настройками по умолчанию.

person HughHughTeotl    schedule 13.09.2018
comment
Действительно, это проблема, с которой я столкнулся, и сброс настроек телефона решил ее для меня. Благодарность! - person Justin Stanley; 28.05.2019
comment
Перепробовал почти все, но ничего не помогло, кроме этого, спасибо - person shehzy; 24.07.2019
comment
Через 2 часа я нашел этот комментарий - спасибо, что спасли мой день, сработало! - person kilian eller; 01.08.2019
comment
Это также вызвало INSTALL_FAILED_DEXOPT на моем эмуляторе. Я увеличил размер, но мне нужно было перейти к настройкам и запустить восстановление заводских настроек. Это устранило проблему. - person Dave Thomas; 04.10.2019
comment
Боже ... снова это случилось со мной после обновления моей Mac OS. Удваивая мое возмещение этого решения, перейдите в настройки и запустите восстановление заводских настроек. Пришлось искать этот вопрос, просто чтобы вспомнить, как я его исправил... слава богу за историю переполнения стека, и я смог найти свой комментарий - person Dave Thomas; 12.02.2020
comment
Настройки --› Резервное копирование и восстановление исправить!! Спасибо - person Gueorgui Obregon; 06.05.2020
comment
Действительно, ошибка INSTALL_FAILED_DEXOPT была устранена после сброса настроек. Обратите внимание, что установка APK работает только из командной строки, перетаскивание по какой-то причине не работает. - person andreszs; 29.06.2021

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

Вам нужно будет удалить старую версию, и тогда у вас больше не должно быть проблем...

Настройки-->Приложения-->Управление приложениями-->[Найти и удалить приложение]

Ошибки INSTALL_FAILED_DEXOPT не должны возникать. Нравится

[2011-06-14 01:23:40 - ProtectYourself] Installing ProtectYourself.apk...
[2011-06-14 01:24:26 - ProtectYourself] Installation error: INSTALL_FAILED_DEXOPT
[2011-06-14 01:24:26 - ProtectYourself] Please check logcat output for more details.
[2011-06-14 01:24:26 - ProtectYourself] Launch canceled!

Ууууу.

person Lenn Dolling    schedule 14.06.2011
comment
Я могу согласиться с причиной и следствием. Такая же ситуация произошла в моем случае после возни с баночками. Для меня это было только на устройствах на базе Android 2.3 Gingerbread, ICS и Lollipop были в порядке. - person AlexVPerl; 25.05.2015
comment
Будет ли это проблемой при загрузке в Play Маркет? или установщик удаляет приложение и устанавливает заново? - person Eduardo Naveda; 08.06.2015

Столкнулся с этим с Android Studio 3.4.1, но с более старым (5.0) эмулятором. Эта процедура (на Mac) исправлена ​​проблема:

  1. остановить эмулятор
  2. cd ~/.android/avd/[имя эмулятора].avd
  3. гм *.замок
  4. стереть эмулятор
  5. запустить эмулятор
person Ken    schedule 14.06.2019
comment
Выполнение того, что упомянуто выше после увеличения внутренней памяти эмулятора до 4 ГБ, — единственное, что сработало для меня. - person dell116; 08.07.2019
comment
@ dell116 Я не удивлен, что иногда приходится делать несколько вещей, просто исходя из всех разных ответов на этот вопрос! - person Ken; 08.07.2019
comment
Согласованный! И поздравляю с получением имени пользователя Кен. - person dell116; 09.07.2019
comment
К сожалению ни одна из комбинаций вайпа/увеличения памяти/вайпа мне опять не помогла. Я сдался. - person Can Poyrazoğlu; 11.07.2019
comment
@CanPoyrazoğlu — я тоже чуть не сдался. Я думаю, что эмуляторы должны быть чрезвычайно чувствительными, и многие вещи могут привести к их сбою (о чем свидетельствуют все разные ответы здесь на вопрос, заданный более восьми лет назад). Удаление файлов .lock было ключевым в моем случае, но я, конечно, вижу, где это может не решить все проблемы. - person Ken; 12.07.2019
comment
В моем случае было необходимо как lock удаление файла, так и emulator memory increase. Я увеличил память своего эмулятора с 1 ГБ до 2 ГБ, и это сработало. Мне не помогло только удаление файла блокировки. - person Abhishek; 30.05.2020

Если вы используете Android Studio, попробуйте очистить проект:

Сборка > Очистить проект

person SandroMarques    schedule 04.08.2014

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

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

В моем случае несколько или конфликтующие версии JUnit были включены в проект, над которым я работал (большая существующая кодовая база). Приложение для Android, которое я пытался развернуть, имело несколько проектов библиотек в качестве зависимостей, и я по ошибке настроил все так, чтобы включить несколько JAR-файлов JUnit.

Я обнаружил это на основе серии сообщений Logcat. Обратите внимание, что строка WARN указывает причину:

DEBUG/dalvikvm(4808): DexOpt: 'Ljunit/framework/TestSuite$1;' has an earlier definition; blocking out
11-06 14:30:10.973: WARN/dalvikvm(4808): Invalid file flags in class Ljunit/runner/Sorter$Swapper;: 0209
11-06 14:30:10.973: null/libc(4808): Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1), thread 4808 (dexopt)
person wsanville    schedule 06.11.2012
comment
Это хорошее предложение. Я согласен с тем, что вам следует просмотреть выходные данные LogCat, чтобы увидеть, что на самом деле представляет собой сообщение об ошибке. Я получал эту ошибку, потому что на моем устройстве было мало памяти, и мне не удавалось разархивировать APK. Я считаю, что есть несколько причин, по которым эта ошибка может быть вызвана, и удаление или очистка пользовательских данных может быть ненужным. Я опубликовал это же предложение в качестве ответа на аналогичный (повторяющийся) вопрос. - person Bryan Bedard; 30.11.2012
comment
ИЗВИНИТЕ, ЭТО ТО ЖЕ ЗАМЕЧАНИЕ, ЧТО ДЕЛАЛ Брайан Бедард. Мне не хватило места — обычно я получаю сообщение об ошибке, например, недостаточно места, но по какой-то причине я получил эту ошибку DEXOPT. Logcat показал ошибку Zip inflate: ошибка записи: на устройстве не осталось места. - person mobibob; 05.09.2013

Я изменил размер оперативной памяти и объем внутренней памяти эмулятора Теперь ЭТО работает... в диспетчере eclipse AVD.

person KATJ Srinath    schedule 01.06.2015
comment
Это также решает проблему в Android Studio. У меня было только 200Mb внутренней памяти. Поднимите до 1 ГБ и проблема решена. Та же ошибка сообщения... Спасибо!! - person Joan Casadellà; 05.04.2016
comment
Работает и для меня. Поднять с 200Мб! - person JohnyTex; 21.06.2016

попробуйте мой ответ https://stackoverflow.com/a/34918549/3737254

если вы используете Android Studio 2.0, ОТКЛЮЧИТЕ мгновенный запуск.

К вашему сведению, мгновенный запуск — это новая функция Android Studio 2.0 (я никогда не использовал ее >.‹)

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

Наслаждаться!

person yfsx    schedule 21.01.2016
comment
Это была моя проблема при тестировании старых API на эмуляторе. После изменения этого и чистой очистки эмулятора все заработало! - person Ben; 30.07.2019

Единственное решение, которое сработало для меня, чтобы исправить это, заключалось в увеличении оперативной памяти виртуальной машины до 4 ГБ.

person Jim    schedule 17.08.2019

Мне нужно было отключить Instant Run, чтобы решить эту проблему. Чтобы отключить мгновенный запуск в OS X, перейдите в раздел Android Studio > Настройки > Сборка, выполнение, развертывание > Мгновенный запуск затем снимите галочку с Enable Instant Run to hot swap code/resource changes on deploy (default enabled).

person iamkaan    schedule 04.02.2016
comment
Это сработало для моего dexopt error. Application failed to install. Я попробовал это, прежде чем нашел это: adb kill-server adb start-server, перезапуск Android Studio и сброс настроек моего устройства до заводских. - person Sherlock; 06.03.2016

Сегодня у меня была такая же проблема с Android Studio на новом виртуальном устройстве. Оказалось, что я загрузил образ x86_64, воссоздав виртуальный диск с эквивалентным образом x86, исправив это.

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

person dvkch    schedule 15.06.2018
comment
Для меня это было наоборот. Попытка установить на x86 не удалась. После загрузки образа и смены эмулятора на x86_64 ошибка пропала. Я использовал образ системы API 21. - person friederbluemle; 27.06.2018
comment
У меня тоже сработало обратное. Перепробовал все в этой теме, прежде чем пытаться использовать изображение x86_64 вместо x86. Я также использовал API 21 AVD (Nexus 5). - person Renan Ferrari; 07.05.2020

Я работаю с Android Studio и имею ту же ошибку.

Помогло удаление папки сборки основного модуля. После удаления все приходит в норму.

person Informatic0re    schedule 14.10.2014

INSTALL_FAIL_DEXOPT обычно связан с ограничением, установленным для class.dex. На чем-либо до ICS dexopt не будет работать на чем-либо более 5 МБ. В последних версиях Android используется буфер размером 8 или 16 МБ.

Проверьте размер class.dex в вашем APK. Также было бы неплохо посмотреть, сколько у вас методов, так как dex имеет ограничение в 65536 методов/полей.


Использованная литература:

Ошибка при установке приложения (INSTALL_FAILED_DEXOPT)

https://www.facebook.com/notes/facebook-engineering/under-the-hood-dalvik-patch-for-facebook-for-android/10151345597798920

Как уменьшить код - ограничение метода 65k в dex

person Jared Rummler    schedule 07.08.2015

Я столкнулся с этой проблемой после включения флага jumboMode в сборке (dex.force.jumbo=true). На более новых устройствах Android все работало нормально, но на Gingerbread установка не удалась.

Поэтому, если вашему приложению требуется режим jumbo из-за раздражающего ограничения в 65 КБ, попробуйте вырезать некоторый неиспользуемый код/строки и снова установить для режима jumbo значение false.

person friederbluemle    schedule 24.06.2014
comment
Я также только что включил режим jumbo и начал видеть это при тестировании на старых устройствах. К сожалению, возврат к false не решил проблему для меня. Использование proguard для сжатия APK сделал. - person slott; 01.10.2014
comment
Мы столкнулись с той же проблемой, Jumbo Mode не работает с API 10. - person Henrique de Sousa; 10.08.2015

classes.dex не проходит в финал .apk. Каждый раз выполняю gradlew --offline clean && gradlew --offline assembleDebug исправления для меня. С этого момента вы можете снова запустить приложение из Android Studio.

РЕДАКТИРОВАТЬ: Перед тем, как я сказал выше, зайдите в Диспетчер задач и уничтожьте все процессы cmd.exe и conhost.exe (или только тот, в котором застрял aapt). В противном случае aapt теперь будет вылетать при запуске из командной строки с печально известной ошибкой -1073741819.

person Eugen Pechanec    schedule 01.10.2014
comment
Оценено: D Стоит отметить, что новейшие инструменты сборки (2.1.1) и плагин gradle (1.0.0-rc1) работают как шарм. - person Eugen Pechanec; 09.12.2014
comment
Ну, я не знаю об этом, я только что установил Android Studio 1.0 и должен был сделать это, чтобы заставить его работать. - person axnsan; 09.12.2014
comment
Попробуйте также убить все java.exe. Сколько у вас оперативной памяти? Убедитесь, что у вас установлена ​​последняя версия следующих компонентов: Android Studio 1.0.0-rc4, плагин Gradle для Android 1.0.0-rc1, инструменты сборки 21.1.1. Я не видел ошибку в течение некоторого времени. - person Eugen Pechanec; 09.12.2014
comment
Инструменты сборки — 21.1.1, Android Studio — 1.0, и я не знаю, как найти версию плагина Gradle. Я только что скачал версию 1.0, которая вчера появилась на сайте разработчиков Android... - person axnsan; 09.12.2014
comment
Посмотрите в корневой файл проекта build.gradle. Среди зависимостей buildscript должно быть classpath 'com.android.tools.build:gradle:1.0.0-rc4'. - person Eugen Pechanec; 10.12.2014
comment
Это всего лишь 1.0.0. Если я пытаюсь добавить -rc4, я получаю эту ошибку: You must use a newer version of the Android Gradle plugin. The minimum supported version is 1.0.0 and the recommended version is 1.0.0. Not all versions of the Android Gradle plugin are compatible with all versions of the SDK. If you update your tools, or if you are trying to open a project that was built with an old version of the tools, you may need to update your plugin version number. - person axnsan; 10.12.2014
comment
Rc означает релиз-кандидат. Два дня назад была выпущена полная испеченная версия. Просто удалите -rc1. - person Eugen Pechanec; 10.12.2014
comment
Мда, я сдаюсь. Я пробовал все, кроме переустановки Windows. Возможно, я попробую еще раз, когда запустится Windows 10. - person axnsan; 10.12.2014

Я получил ту же ошибку и исправил ее, увеличив размер внутренней памяти.

Внутреннее хранилище изначально было установлено на 32 МБ (я знаю), а затем я установил на него пару apks, которые оставили меньше места, чем нужно для установки.

person binRAIN    schedule 05.12.2014

проверьте свободное место на вашем устройстве

person Farido mastr    schedule 25.02.2019
comment
Это помогает, я увеличил оперативную память и пространство своего виртуального устройства, после чего проблема решена. - person Wesely; 29.03.2019

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

попробуйте добавить это в свой gradle.properties, и у меня это работает

android.enableD8=false
android.enableD8.desugaring= false
person NataTse    schedule 07.02.2020

Я удалил приложение и, тем не менее, получил ошибку INSTALL_FAILED_DEXOPT. Если вы работаете с Android Studio/gradle: gradle clean помог мне, Ура.

person JacksOnF1re    schedule 07.11.2014
comment
Мне пришлось использовать gradlew, но это сработало! спасибо (тоже удалил пакет в data/data) - person Maxim; 23.11.2014

в build.gradle измените компиляцию и соберите последнюю версию. и это сработало для меня.

================

android {
    compileSdkVersion 22
    buildToolsVersion "22"
person riseres    schedule 18.03.2015

У меня возникла эта проблема при попытке установить на устройства 2.3 (отлично на 4.0.3). В итоге это произошло из-за того, что проект lib, который я использовал, имел несколько банок, которые были для вещей, уже находящихся в Android, например. Парсеры HttpClient и XML и т. д. Глядя на logcat, я нашел это, поскольку он говорил мне, что пропускает классы из-за того, что они уже присутствуют. Хорошая бесполезная исходная ошибка!

person Dori    schedule 18.10.2013
comment
У меня такая же проблема, не могли бы вы объяснить, как вы решили эту проблему? У меня есть библиотеки размером более 7 МБ, поэтому я не могу установить их на более раннее устройство, например 2.3. - person Rakki s; 01.08.2014
comment
В моем случае я использовал сборку gradle для создания apk, а виновником был jar поставщика bouncy-castle. Мне пришлось исключить модуль «bcprov-jdk» из зависимостей компиляции корневого проекта. - person Pawan; 23.12.2014

У меня была эта ошибка при тестировании на реальном устройстве. Очистка кеша/удаление, перезапуск всего у меня не сработали, удаление содержимого папки сборки помогло :) (Android studio)

person Gyroscope    schedule 08.05.2014

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

person Alécio Carvalho    schedule 13.08.2014

Рассмотрите возможность использования proguard для уменьшения APK. У меня такая же проблема, если я пытаюсь установить большой APK размером более 25 МБ на старое устройство Samsung Galaxy Ace 2.3.6 без сжатия/оптимизации кода с помощью proguard.

Джамбо-режим и перезапуск устройства не работают.

person slott    schedule 01.10.2014

В моем случае это была ошибка плагина kotlin версии 1.1.51.

https://youtrack.jetbrains.com/issue/KT-20034

Эта ошибка появлялась на старых устройствах (API 16).

Исправлено это путем удаления аннотаций @Parcelize и замены их этим генератором кода: https://github.com/nekocode/android-parcelable-intellij-plugin-kotlin

person stillwaiting    schedule 20.10.2017

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

person Jalon Ray    schedule 23.06.2018

targetSdkVersion 22//17==========================> установите это число меньше или равное версии ОС Android на устройствах может помочь

 defaultConfig {
        applicationId "software.nhut.personalutilitiesforlife"
        minSdkVersion 16
        targetSdkVersion 22//17==========================> set this number less then or equal to the version of Android OS on devices might help
        versionCode 5
        versionName "1.26"
        // Enabling multidex support.
        multiDexEnabled true
    }
person Thunder knight    schedule 06.09.2018

В моем случае проблема возникала на некоторых устройствах с API 21 и 22. Установка android:vmSafeMode="true" в манифесте под тегом application решила проблему. Однако это не рекомендуется для выпускных сборок, поэтому я создал два xml-файла в папке значений. По умолчанию для старых API:

<resources>
    <bool name="vm_safe_mode">true</bool>
</resources>

И то же самое для API ›= 23 со значением false. В этом случае устройства с более новой ОС не пострадают, а старые, по крайней мере, будут работать.

person anro    schedule 29.06.2020
comment
Очень полезно! это работает после добавления vmSafeMode=true к приложению - person twiceYuan; 21.05.2021

У меня была эта проблема, когда в именах моих методов были некоторые символы Unicode (из-за всего, копирование/вставка из файла PowerPoint), которые не нравились Dalvik. Вы можете увидеть это, посмотрев вывод Logcat при попытке установить APK.

Это было на реальном устройстве.

person thoutbeckers    schedule 26.06.2013

Решается исправлением даты и времени на телефоне (это была какая-то дата по умолчанию 01.01.1980) и очисткой проекта.

person No Name    schedule 14.10.2014

Я изменил свою версию поддержки Android версии 4 для SDK 21 и получил эту ошибку. Так что я вернул версию поддержки старой версии (до 21) и все заработало. Ошибка возникала только в андроиде 2.3

person Cícero Moura    schedule 04.11.2014

Я столкнулся с этой проблемой, когда пытался обновить новые инструменты сборки 24.0.1. Интернет-соединение было потеряно, и инструменты не были успешно загружены, после чего я получил эту ошибку и потратил много времени, пытаясь ее решить. Но когда я успешно обновил инструменты сборки - проблема решена. Удачи.

person Alex Perevozchykov    schedule 16.12.2014

Убедитесь, что у вас установлены все необходимые SDK, а Gradle нацелен на правильную версию.

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

person user4474925    schedule 20.01.2015

Я столкнулся с этой проблемой, потому что было некоторое несоответствие с библиотеками, которые я использовал.

Решено путем обновления Android SDK до последней версии. Проверьте диспетчер SDK, если он показывает обновление, затем полностью обновите, очистите проект и запустите, все будет работать :)

person Sonali8890    schedule 06.07.2015

Возможно, это поможет:

  1. Сотрите пользовательские данные перед запуском эмулятора
  2. очистить проект
  3. удалить зависимости, которые не требуются....
person Rajat Sawant    schedule 12.09.2015

Ошибка устраняется путем удаления папки сборки вашего основного приложения. Оно будет воссоздано снова.

person Prateek    schedule 09.12.2015

В Android Studio нажмите File -> Invalidate caches/restart. Это помогло мне, когда я получил эту ошибку, когда я получил эту ошибку на устройстве, а не на эмуляторе.

person Amro elaswar    schedule 27.04.2016

Для меня именно proguard вызывал INSTALL_FAILED_DEXOPT на некоторых устройствах Samsung с Android 5.x.

А именно мне пришлось добавить это в proguard - не уверен, почему это помогло.

-keepattributes LocalVariableTable
person Martin Rajniak    schedule 18.01.2017

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

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

person dianakarenms    schedule 26.04.2017

Также, если вы уже используете ECLIPSE, попробуйте очистить свой проект:

Проект > Очистить...

person Adamz    schedule 02.06.2018

Одна из причин заключается в том, что class.dex не находится в корне .apk-пакета. Либо

  • этот файл отсутствует в apk-пакете или
  • он находится в подпапке в файле .apk.

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

Основными причинами этой ошибки могут быть:

  • Инструмент dx нуждается в class.dex в текущей основной рабочей папке. Но на самом деле class.dex находится где-то в другом месте.
  • aapt содержит неверную информацию о расположении class.dex. Например с aapt.exe add ... bin/classes.dex. Это было бы неправильно, потому что class.dex находится в подпапке /bin созданного файла .apk.
person gotwo    schedule 22.02.2020

Всем, кто ищет это по ключевому слову Room. Я столкнулся с этой проблемой при реализации Room для управления моей базой данных. Причина в том, что я скопировал все зависимости из документации Android. Скопируйте только те, которые вам нужны. Если вы не используете Kotlin или Guava, добавьте только:

implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
testImplementation "androidx.room:room-testing:$room_version"
person Krzysztof Wiśniewski    schedule 09.07.2020

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

Я столкнулся с этой проблемой при попытке запустить проект на виртуальном устройстве API 21 ABI x86_64 with Google Play Services, и ни одно из перечисленных выше предложений не помогло. Все, что мне нужно было создать виртуальное устройство API 21 ABI x86 with Google Play services.

person Dmitrii Leonov    schedule 08.04.2021

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

Перейдите в каталог вашего проекта и найдите файл build/intermediates/dex-cache/cache. Удалите его — как следует из названия, это кэшированный файл dex, который может устареть, если вы внесли изменения в зависимости вашего проекта, версию инструментов сборки и т. д.

person Sosoel    schedule 09.04.2016

Если у вас есть ошибка INSTALL_FAIL_DEXOPT, см. в манифесте android:targetSdkVersion. Комплект версии ‹ 21 образец:

Android: targetSdkVersion = "19"

Это сработало для меня.

person user3270024    schedule 11.04.2016