java.lang.IllegalArgumentException: ошибка: не удалось проанализировать файл APK:

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

Я пробовал следующее: аннулировать кеши / перезапустить чистую сборку и восстановить удаленное приложение проекта с устройства перезапустил мой компьютер

Exception occurred while executing:
java.lang.IllegalArgumentException: Error: Failed to parse APK file: /data/local/tmp/...
    at com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:338)
    at com.android.server.pm.PackageManagerShellCommand.runInstall(PackageManagerShellCommand.java:906)
    at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:158)
    at android.os.ShellCommand.exec(ShellCommand.java:103)
    at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:21328)
    at android.os.Binder.shellCommand(Binder.java:634)
    at android.os.Binder.onTransact(Binder.java:532)
    at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2821)
    at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3856)
    at android.os.Binder.execTransact(Binder.java:731)
Caused by: android.content.pm.PackageParser$PackageParserException: Failed to parse /data/local/tmp/...
    at android.content.pm.PackageParser.parseApkLiteInner(PackageParser.java:1590)
    at android.content.pm.PackageParser.parseApkLite(PackageParser.java:1575)
    at com.android.server.pm.PackageManagerShellCommand.setParamsSize(PackageManagerShellCommand.java:331)
    ... 9 more
$ adb shell pm uninstall ...
Unknown failure (at android.os.Binder.execTransact(Binder.java:731))
Error while Installing APK

person user2799177    schedule 07.12.2018    source источник
comment
Вывод logcat может дать некоторое указание на проблему до трассировки стека.   -  person Pierre    schedule 07.12.2018
comment
Привет, Пьер, спасибо за ваш ответ, это часть вывода logcat, когда происходит ошибка 2018-12-07 08: 10: 16.541 2049-5709 / system_process W / ResourceType: Плохой строковый блок: последняя строка не заканчивается 0 2018-12-07 08: 10: 16.541 2049-5709 / system_process E / system_server: RES_STRING_POOL_TYPE поврежден. 2018-12-07 08: 10: 16.541 2049-5709 / system_process E / system_server: не удалось загрузить resources.arsc в APK / data / local / tmp / ...   -  person user2799177    schedule 07.12.2018
comment
@Pierre Это ошибки в logcat 2018-12-07 09: 14: 03.134 1109-9002 /? E / system_server: RES_STRING_POOL_TYPE поврежден. 2018-12-07 09: 14: 03.134 1109-9002 /? E / system_server: не удалось загрузить 'resources.arsc' в APK '/ data / local / tmp / .... --------- начало системы 2018-12-07 09: 14: 06.288 31289- 31289 /? E / ogle.android.g: Отладчик не запускается, поскольку процесс не может загрузить агент jdwp. 2018-12-07 09: 14: 06.732 2900-31340 /? E / ndroid.systemu: неверный идентификатор 0x00000000 ...   -  person user2799177    schedule 07.12.2018
comment
Похоже, в вашей системе сборки возникла проблема с построением допустимой таблицы ресурсов. Вы используете Gradle? Если да, то какой версии? Если нет, то что вы используете для создания APK?   -  person Pierre    schedule 07.12.2018
comment
@Pierre, спасибо вам огромное, Пьер, я очень ценю вашу помощь, так как мне очень сложно разобраться в этой проблеме. отличный вопрос, я использую Gradle, мне действительно удалось установить это с помощью Gradle версии 3.1.4 (исходная версия, когда приложение было построено), но когда я обновился до Gradle 3.2.1, вот где он падает. шаги, которые я предпринял до сих пор, чтобы попытаться решить эту проблему: удалил кеш Gradle в user / .graddle / caches и удалил, а затем повторно установил студию Android без везения. Я также не перенесен с androidx, и он работает в gradle 3.1.4, но дает эту ошибку в gradle 3.2.1   -  person user2799177    schedule 07.12.2018
comment
Еще в настройках снял галочку с мгновенного запуска   -  person user2799177    schedule 07.12.2018
comment
Можете ли вы убедиться, что aapt2 не отключен в свойствах Gradle?   -  person Pierre    schedule 08.12.2018
comment
@pierre, спасибо за вашу помощь, Пьер, мне действительно удалось исправить эту проблему. это произошло из-за старого каталога установки студии Android в файловой системе (3.1) после удаления этого каталога он не работает.   -  person user2799177    schedule 08.12.2018


Ответы (3)


Очистить -> Восстановить -> и попытаться проверить как v1, так и v2 при создании файла apk

person Uma Achanta    schedule 07.12.2018
comment
Спасибо, Ума, за ваш ответ, я пробовал это, а также пытался собрать подписанный apk и безуспешно устанавливать его через adb. - person user2799177; 07.12.2018
comment
просто чтобы отметить это, когда я пытаюсь установить через adb, я получаю следующую ошибку Failure [INSTALL_PARSE_FAILED_NOT_APK: Failed to parse /data/app/vmdl1116562896.tmp/base.apk] - person user2799177; 07.12.2018

Вам следует сбросить кеш на свой мобильный. Например:

1- откройте терминал Windows на вашем компьютере

2 - введите команду >adb shell вы должны быть на своем мобильном телефоне

3 - войти в папку tmp / appium_cache / с >cd data/local/tmp/appium_cache

4 - напишите команду >ls, чтобы увидеть все элементы, которые есть внутри этой папки

5 - сбросьте все эти элементы с помощью команды >rm filename

надеюсь помочь вам

person Rogelio Velazquez Hernandez    schedule 16.07.2020

Удалите предыдущий файл app-release.apk из папки android:

\app\build\outputs\apk\release

Затем удалите все данные из эмулятора. Наконец, перестройте приложение.

person Hamidreza    schedule 02.06.2021