Ответ 1
Я получал это в Android Studio и все, что я сделал, чтобы исправить это, перешел на "Build" > "Clean Project"
, и он просто сработал.
Когда я нажимаю, чтобы запустить проект, который я только что создал в 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]
Любая идея того, что это может быть?
Я получал это в Android Studio и все, что я сделал, чтобы исправить это, перешел на "Build" > "Clean Project"
, и он просто сработал.
У меня была аналогичная проблема, я заметил, что имя пакета в моем Androidmanifest.xml было запущено с одним пустым символом пробела. like " com.example.test" instead of "com.example.test"
Я удалил все такие недопустимые пробелы из моего файла манифеста, он решил мою проблему
Изменить 1: '-' в имени пакета также вызывают такую же проблему для некоторых версий Android.
У меня была такая же проблема, но ни один из решений не работал у меня. Проблема заключалась в том, что у меня не было разделителей . в имени моего пакета.
т.е. если ваше имя пакета my.packagename отлично, но оно не может быть просто mypackagename
Получил подсказку из этого отчета об ошибке.
Если у кого-то все еще есть проблема, тогда Build- > Clean Project, а затем Build- > Rebuild проект проект синхронизации с файлом Gradle.
Как решить эту проблему:
RootExplorer
tmp
на SD-картеLink
в эту папку (последняя опция в меню)/data/local/
и нажмите кнопку CREATE LINK
снизуУ меня была эта проблема, и ни одно из вышеперечисленных решений не работало для меня.
По какой-то причине разрешения были установлены неправильно в моем каталоге /data/local/tmp
(только root имел rwx). Я исправил проблему с помощью ADB (вам понадобится корневое устройство):
adb shell
/data/local
с помощью cd /data/local
su
tmp
с помощью chmod 777 tmp
Отключение Instant Run решило мою проблему. Не знаю никаких объяснений до сих пор. После миграции на андроид студию 3.0 у него начинается такая проблема. Надеюсь, это поможет кому-то в будущем.
Когда я столкнулся с этой проблемой, я исправил ее для того, чтобы убедиться, что имя пакета AndroidManifest.xml совпадает с именем приложения build.grade.
Я нашел еще одну причину этой ошибки. Если вы подключили свои права доступа к устройству /data/local/tmp, можно изменить, поэтому adb не может получить доступ к этому временному файлу. Решение состоит в создании папки "tmp" на SD-карте и создании символической ссылки на нее/data/local/(через оболочку ADB или Root Explorer).
Если вы пишете android:extractNativeLibs="false"
в файле AndroidManifest. затем измените его на android:extractNativeLibs="true"
Это помогло в моем случае:
Settings -> Apps -> Google Play Store -> Click "Enable" button.
Я перепробовал большинство предложенных выше решений (простые, а не те, которые предлагают chmod и изменяют внутренние библиотеки), и ни одно из них не работает
В конечном итоге у меня сработало следующее: "Чистый проект" → "Перестроить проект" → изменил имя версии приложения в модуле приложения build.gradle → Sync Gradle → Запустите приложение на устройстве
У меня была эта проблема на android Studio, потому что в моей сборке Debug я добавил суффикс имени версии -DEBUG, а проблема -.
Я столкнулся с этой проблемой из-за несоответствия вариантов сборки. Модуль динамической доставки был в варианте отладки, в то время как остальные модули были в выпуске. Простая замена модуля Dynamic Delivery на выпуск, перестройку и установку позволила устранить проблему.
Удалите предыдущую версию, если она уже установлена, и повторите попытку. Это может помочь
Я использовал архетип androidquickstart maven и столкнулся с той же проблемой:
Мое имя пакета было единственным androidquickstart. Согласно советам до
package="androidquickstart"
на package="androidquickstart.test"
и соответственно удалил тест из других частей xml <activity android:name=".test.HelloAndroidActivity" >
в <activity android:name=".HelloAndroidActivity" >
У меня была такая же ошибка. У меня был год 2015 в приложении id. Я заменил 2015 на пятнадцать и решил это.
Кроме того, если вы используете Android Studio, вы можете попробовать: Инструменты /Android/Synch Project с Gradle Файлы
Принудительная остановка приложения в настройках устройства.
У меня была эта проблема, и ни одно из вышеперечисленных решений не работало для меня.
Возможно, причина в том, что телефон с корневой версией имеет доступную квоту или apk устанавливать разрешения только на SD-карте.
Я исправил проблему с помощью ADB (вам понадобится корневое устройство):
Кажется, есть несколько причин этого отказа. Для меня проблема заключалась в том, что в файле AndroidManifest я ссылался на несуществующую библиотеку (только на этом конкретном устройстве), используя тег 'uses-library'. После удаления библиотеки, у которой на этом устройстве не было установлено apk, правильно установлено.
Ваше имя пакета должно включать слова, объединенные точками, такими как com.example или prashant.mydairy..... он должен работать нормально сейчас
файлы, в которых необходимо обновить имя пакета ur, указаны ниже: 1) Файл манифеста 2) Gradle file (module appp): applicationId "package.name"
Имя taskAffinity должно содержать хотя бы одну '.' разделитель
Если у вас есть доступ к консоли устройства (оболочка adb), измените права доступа:
/data/local/
в этом случае убедитесь, что также установлены правильные разрешения для apk.Похоже, что число после того, как точка была виновником.
У меня была такая же проблема со следующим applicationId
org.tony.stark.125jarvis
Меняя его на
org.tony.stark.jarvis
Мне удалось установить приложение на устройства Android.
Вы можете получить эту ошибку, если minSdkVersion
в builde.gradle
больше, чем версия устройства Android. В этом случае вы должны изменить minSdkVersion
.
удалить код в AndroidManifest.xml:
tools: replace = "android: appComponentFactory" android: appComponentFactory = ""
оно работает.
В моем случае я получаю эту ошибку 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
, она исправила ошибку.
После значительного обновления убедитесь, что applicationId
build.gradle(Module: app)
и пакет в AndroidManifest.xml
идентичны. У меня была такая же проблема, и я решил ее.
Я сталкиваюсь с подобной проблемой, но она автоматически исправляется после перезагрузки компьютера Ubuntu ,, поскольку я устанавливаю некоторое обновление приложения Ubuntu (12.04), которое приводит к этой проблеме.
Я сталкивался с этой проблемой в Android Studio 3.4. Отключение Instant Run решило мою проблему. Не знаю никаких объяснений до сих пор. Надеюсь, это поможет кому-то в будущем.