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

Ошибка [INSTALL_FAILED_INVALID_APK]

Когда я нажимаю, чтобы запустить проект, который я только что создал в Android Studio 0.2.10, и выберите мой Android (подключенный USB с отладкой по USB). Я получаю эту ошибку:

Waiting for device.
Target device: 0123456789ABCDEF
Uploading file
    local path: /Users/Rui/AndroidStudioProjects/FirstAppProject/FirstApp/build/apk/FirstApp-debug-unaligned.apk
    remote path: /data/local/tmp/rui.firstapp
Installing rui.firstapp
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/rui.firstapp"
pkg: /data/local/tmp/rui.firstapp
Failure [INSTALL_FAILED_INVALID_APK]

Любая идея того, что это может быть?

4b9b3361

Ответ 1

Я получал это в Android Studio и все, что я сделал, чтобы исправить это, перешел на "Build" > "Clean Project", и он просто сработал.

Ответ 2

У меня была аналогичная проблема, я заметил, что имя пакета в моем Androidmanifest.xml было запущено с одним пустым символом пробела. like " com.example.test" instead of "com.example.test"

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

Изменить 1: '-' в имени пакета также вызывают такую ​​же проблему для некоторых версий Android.

Ответ 3

У меня была такая же проблема, но ни один из решений не работал у меня. Проблема заключалась в том, что у меня не было разделителей . в имени моего пакета.
т.е. если ваше имя пакета my.packagename отлично, но оно не может быть просто mypackagename
Получил подсказку из этого отчета об ошибке.

https://code.google.com/p/android/issues/detail?id=55841

Ответ 4

Если у кого-то все еще есть проблема, тогда Build- > Clean Project, а затем Build- > Rebuild проект проект синхронизации с файлом Gradle.

Ответ 5

Как решить эту проблему:

  • Установить RootExplorer
  • Создать новую папку tmp на SD-карте
  • Долгое время нажимайте на папку tmp и выберите Link в эту папку (последняя опция в меню)
  • Перейдите к /data/local/ и нажмите кнопку CREATE LINK снизу

Ответ 6

У меня была эта проблема, и ни одно из вышеперечисленных решений не работало для меня.

По какой-то причине разрешения были установлены неправильно в моем каталоге /data/local/tmp (только root имел rwx). Я исправил проблему с помощью ADB (вам понадобится корневое устройство):

  • Подключите телефон через USB
  • Запустите ADB с помощью adb shell
  • Перейдите в /data/local с помощью cd /data/local
  • Переключитесь в корневой режим с помощью su
  • Разрешить чтение/запись/выполнение в каталоге tmp с помощью chmod 777 tmp
  • Отключите, перезапустите Android Studio и снова подключите устройство.

Ответ 7

Отключение Instant Run решило мою проблему. Не знаю никаких объяснений до сих пор. После миграции на андроид студию 3.0 у него начинается такая проблема. Надеюсь, это поможет кому-то в будущем.

Ответ 8

Когда я столкнулся с этой проблемой, я исправил ее для того, чтобы убедиться, что имя пакета AndroidManifest.xml совпадает с именем приложения build.grade.

Ответ 9

Я нашел еще одну причину этой ошибки. Если вы подключили свои права доступа к устройству /data/local/tmp, можно изменить, поэтому adb не может получить доступ к этому временному файлу. Решение состоит в создании папки "tmp" на SD-карте и создании символической ссылки на нее/data/local/(через оболочку ADB или Root Explorer).

Ответ 10

Если вы пишете android:extractNativeLibs="false" в файле AndroidManifest. затем измените его на android:extractNativeLibs="true"

Ответ 11

Это помогло в моем случае:

Settings -> Apps -> Google Play Store -> Click "Enable" button.

Ответ 12

Я перепробовал большинство предложенных выше решений (простые, а не те, которые предлагают chmod и изменяют внутренние библиотеки), и ни одно из них не работает

В конечном итоге у меня сработало следующее: "Чистый проект" → "Перестроить проект" → изменил имя версии приложения в модуле приложения build.gradle → Sync Gradle → Запустите приложение на устройстве

Ответ 13

У меня была эта проблема на android Studio, потому что в моей сборке Debug я добавил суффикс имени версии -DEBUG, а проблема -.

Попробуйте только буквы, цифры и точки для имен версий и идентификаторов приложений

Ответ 14

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

Ответ 15

Удалите предыдущую версию, если она уже установлена, и повторите попытку. Это может помочь

Ответ 16

Я использовал архетип androidquickstart maven и столкнулся с той же проблемой:

Мое имя пакета было единственным androidquickstart. Согласно советам до

  • Я изменил пакет на androidquickstart.test
  • то в AndroidManifest.xml я изменил package="androidquickstart" на package="androidquickstart.test" и соответственно удалил тест из других частей xml <activity android:name=".test.HelloAndroidActivity" > в <activity android:name=".HelloAndroidActivity" >
  • а также исправленные проблемы с пакетом в java файлах (выделены IDE).

Ответ 17

У меня была такая же ошибка. У меня был год 2015 в приложении id. Я заменил 2015 на пятнадцать и решил это.

Кроме того, если вы используете Android Studio, вы можете попробовать: Инструменты /Android/Synch Project с Gradle Файлы

Ответ 18

Принудительная остановка приложения в настройках устройства.

Ответ 19

У меня была эта проблема, и ни одно из вышеперечисленных решений не работало для меня.

Возможно, причина в том, что телефон с корневой версией имеет доступную квоту или apk устанавливать разрешения только на SD-карте.

Я исправил проблему с помощью ADB (вам понадобится корневое устройство):

  • Подключите телефон через USB
  • Запустить ADB с помощью оболочки adb
  • Переключиться в корневой режим с помощью su
  • создать папку tmp в sdcard: mkdir/sdcard/tmp
  • cd/data/local
  • создайте ссылку на папку в sdcard: ln -s/sdcard/tmp tmp

Ответ 20

Кажется, есть несколько причин этого отказа. Для меня проблема заключалась в том, что в файле AndroidManifest я ссылался на несуществующую библиотеку (только на этом конкретном устройстве), используя тег 'uses-library'. После удаления библиотеки, у которой на этом устройстве не было установлено apk, правильно установлено.

Ответ 21

Ваше имя пакета должно включать слова, объединенные точками, такими как com.example или prashant.mydairy..... он должен работать нормально сейчас

файлы, в которых необходимо обновить имя пакета ur, указаны ниже: 1) Файл манифеста 2) Gradle file (module appp): applicationId "package.name"

Ответ 22

Имя taskAffinity должно содержать хотя бы одну '.' разделитель

Ответ 23

Если у вас есть доступ к консоли устройства (оболочка adb), измените права доступа:

  1. chmod 777/data/
  2. chmod 777/data/local/
    Вы также можете попробовать скопировать apk в /data/local/ в этом случае убедитесь, что также установлены правильные разрешения для apk.
  3. chmod 777/data/local/myapk.apk Теперь вы можете попытаться выполнить установку: pm install -r -d/data/local/myapk.apk (обратите внимание на абсолютный путь)

Ответ 24

Похоже, что число после того, как точка была виновником.

У меня была такая же проблема со следующим applicationId

org.tony.stark.125jarvis

Меняя его на

org.tony.stark.jarvis

Мне удалось установить приложение на устройства Android.

Ответ 25

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

Ответ 26

удалить код в AndroidManifest.xml:

tools: replace = "android: appComponentFactory" android: appComponentFactory = ""

оно работает.

Ответ 27

В моем случае я получаю эту ошибку Failure [INSTALL_FAILED_INVALID_APK] когда пытаюсь установить apk с pm install -r -d/sdcard/Download/foo.apk.

Поскольку этот пакет уже удален с помощью pm uninstall <foo_package_name>, я пытаюсь удалить /data/local/tmp/<foo_package_name> но не повезло.

Мне нужно перезагрузить систему Android, чтобы исправить. (Не уверен, что удаление data/local/tmp/<foo_package_name> необходимо или нет.)

[ОБНОВИТЬ]

Это происходит снова только сейчас, я пытаюсь не удалять, так как мне нужно сохранить разрешение apk наследовать SDK 22, так что на этот раз я использую am force-stop <fook_package_name> чтобы сначала остановить его, а затем повторите попытку pm install, она исправила ошибку.

Ответ 28

После значительного обновления убедитесь, что applicationId build.gradle(Module: app) и пакет в AndroidManifest.xml идентичны. У меня была такая же проблема, и я решил ее.

Ответ 29

Я сталкиваюсь с подобной проблемой, но она автоматически исправляется после перезагрузки компьютера Ubuntu ,, поскольку я устанавливаю некоторое обновление приложения Ubuntu (12.04), которое приводит к этой проблеме.

Ответ 30

Я сталкивался с этой проблемой в Android Studio 3.4. Отключение Instant Run решило мою проблему. Не знаю никаких объяснений до сих пор. Надеюсь, это поможет кому-то в будущем.