Подтвердить что ты не робот

Невозможно загрузить приложение Android на устройство (устаревшие банки с деменцией)

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

Ошибка установки, так как у устройства, возможно, есть устаревшие джикс-банки, которые не соответствуют текущей версии (ошибка dexopt). Для продолжения необходимо удалить существующее приложение.

ПРЕДУПРЕЖДЕНИЕ: Удаление приведет к удалению данных приложения!

Вы хотите удалить существующее приложение?

Он дал два варианта: "ОК" или "Отмена". После нажатия OK на вкладке "Выполнить" появилось следующее сообщение:

DEVICE SHELL COMMAND: pm uninstall my.bundle.id
Unknown failure

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

Что я могу сделать?

4b9b3361

Ответ 1

Я обнаружил, что файл dex становится больше, чем буфер, хотя он содержит менее 64 тыс. методов. Затем я включил ProGuard, и это помогло значительно уменьшить размер файла dex.

Приложение dex-method-counts помогает отлаживать ваш файл dex, проверяя не только количество методов, но и какой пакет они принадлежат

Ответ 2

Я также сталкивался с этой проблемой в Android Studio, начиная с версии 2.0 Preview 6 вплоть до 2.0 Beta 3, и ни одно из упомянутых здесь решений не помогло мне.

Оказалось, это не имеет ничего общего с Instant Run. Все, что мне нужно было сделать, это увеличить внутреннее хранилище AVD до исчезновения следующего уведомления. Я также должен был выполнить очистку данных после изменения значений.

enter image description here

Ответ 3

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

Возможно, это ошибка в функции мгновенного запуска предварительного просмотра Android studio 2.0.

Instant Run - новая функция, представленная в Android Studio 2.0.

ps: в случае, если вы не нашли мгновенный запуск, его в:

Android Studio --> Preferences --> Build, execution, deploy --> Instant run.

или вы можете найти его на вкладке настроек.

Ответ 4

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

Ответ 5

Я выяснил, что моя проблема была вызвана старой версией SDK Build Tools, которая вызывала ошибку Clean. Я обновил свои инструменты для создания SDK до новейшей версии и после этой очистки работал, и я больше не получал ошибку с устаревшими флагами. Надеюсь, это поможет кому-то, кто борется с этой проблемой.

Ответ 6

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

В Android Studio это можно сделать, нажав Сборкa > Очистить Проект. SysadminTips

Ответ 7

В моем проекте я прошел мимо этого, уточнив, какие части сервисов Google Play, с которыми я связывался. В частности, я изменил

dependencies {
    ...
    compile 'com.google.android.gms:play-services:8.4.0'
}

к

dependencies {
    ...
    compile 'com.google.android.gms:play-services-maps:8.4.0'
}

в моем модуле приложения build.gradle, поскольку все, что я действительно использовал, было API-интерфейсом карт.

Ответ 8

Что я сделал, был изменен файл build.gradle(Module: app).

Первоначально он был

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

Я изменил его на

    buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

Затем перестроить и развернуть!

Ответ 9

Когда ваш файл dex становится больше, чем размер буфера (т.е. содержит более 65 тыс. меток), то эта ошибка возникает. Вы можете избежать этой ошибки двумя способами: 1.) Удалите неиспользуемый код с помощью ProGuard. Настройте параметры ProGuard для вашего приложения, чтобы запустить ProGuard, и убедитесь, что у вас есть сокращения для релизов. Включение сокращения означает, что вы не отправляете неиспользуемый код с вашими APK.

2.) Вы можете настроить приложение для поддержки нескольких приложений. Используйте эту ссылку для ее использования: https://developer.android.com/tools/building/multidex.html

Для поддержки multidex я переопределяю этот метод в своем классе приложения:

@Override
protected void attachBaseContext(Context base) {
  super.attachBaseContext(base);
  MultiDex.install(this);
}

и измените мой build.gradle следующим образом:

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.1"

         defaultConfig {
             minSdkVersion 14 //lower than 14 doesn't support multidex
             targetSdkVersion 21

             // Enabling multidex support.
             multiDexEnabled true
         }
}

dependencies {
    compile 'com.android.support:multidex:1.0.0'
}

Надеюсь, что это поможет!

РЕДАКТИРОВАТЬ: Вызвали текстовое пояснение из кода.

Ответ 10

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

Ответ 11

Если вы используете предварительный просмотр Android studio 2.0, отключите мгновенный запуск.

Вся благодарность и благодарность за спасение жизни fooobar.com/questions/122422/...

Ответ 12

Ни один из ответов не разрешил мою проблему

вы также должны сделать progaurd для отладки. просто добавьте buildtypes в свой основной файл gradle:

buildTypes {
    debug {  // change release to debug
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}

Ответ 13

В моем случае это было вызвано файлом с именем "dictionary.txt". Я просто удалил его и решил проблему.

Ответ 14

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

Ответ 15

Это помогло мне для эмулятора: Закрыть эмулятор. Инструменты> AVD Manager> Выберите Настройки эмулятора> Очистить данные> Холодная загрузка. Теперь установите приложение.

Ссылка