Не удается установить apk

#android #aapt

#Android #aapt

Вопрос:

Я использую Eclipse Ganymede с ADT 10.0 плагином и Android3.0 SDK для сборки своего приложения.

Когда я пытаюсь развернуть приложение на своем телефоне, я получаю следующее, написанное на моей консоли:

 [2011-05-06 10:35:38 - MyProject] Failed to install MyProject.apk on device 
[2011-05-06 10:35:38 - MyProject] (null)
[2011-05-06 10:35:38 - MyProject] Launch canceled! 
  

и следующее записывается в adb logcat :

 INFO/zipro(2499): Could not find end-of-central-directory in Zip
DEBUG/asset(2499): failed to open Zip archive '/data/local/tmp/MyProject.apk'
WARN/PackageParser(2499): Unable to read AndroidManifest.xml of /data/local/tmp/MyProject.apk
WARN/PackageParser(2499): java.io.FileNotFoundException: AndroidManifest.xml
WARN/PackageParser(2499):     at android.content.res.AssetManager.openXmlAssetNative(Native Method)
WARN/PackageParser(2499):     at android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:523)
WARN/PackageParser(2499):     at android.content.res.AssetManager.openXmlResourceParser(AssetManager.java:491)
WARN/PackageParser(2499):     at android.content.pm.PackageParser.parsePackageLite(PackageParser.java:597)
WARN/PackageParser(2499):     at com.android.defcontainer.DefaultContainerService$1.getMinimalPackageInfo(DefaultContainerService.java:126)
WARN/PackageParser(2499):     at com.android.internal.app.IMediaContainerService$Stub.onTransact(IMediaContainerService.java:100)
WARN/PackageParser(2499):     at android.os.Binder.execTransact(Binder.java:288)
WARN/PackageParser(2499):     at dalvik.system.NativeStart.run(Native Method)
ERROR/PackageManager(1579): Failed to handle start copy. Giving up
ERROR/PackageManager(1579): java.lang.NullPointerException
ERROR/PackageManager(1579):     at android.os.Parcel.readException(Parcel.java:1253)
ERROR/PackageManager(1579):     at android.os.Parcel.readException(Parcel.java:1235)
ERROR/PackageManager(1579):     at com.android.internal.app.IMediaContainerService$Stub$Proxy.getMinimalPackageInfo(IMediaContainerService.java:220)
ERROR/PackageManager(1579):     at com.android.server.PackageManagerService$InstallParams.handleStartCopy(PackageManagerService.java:5065)
ERROR/PackageManager(1579):     at com.android.server.PackageManagerService$HandlerParams.startCopy(PackageManagerService.java:4954)
ERROR/PackageManager(1579):     at com.android.server.PackageManagerService$PackageHandler.doHandleMessage(PackageManagerService.java:476)
ERROR/PackageManager(1579):     at com.android.server.PackageManagerService$PackageHandler.handleMessage(PackageManagerService.java:421)
ERROR/PackageManager(1579):     at android.os.Handler.dispatchMessage(Handler.java:99)
ERROR/PackageManager(1579):     at android.os.Looper.loop(Looper.java:143)
ERROR/PackageManager(1579):     at android.os.HandlerThread.run(HandlerThread.java:60)
  

Когда я пытаюсь установить его с помощью adb shell из командной строки, я получаю:

 EOCD not found, not Zip
file 'D:WorkspaceMyProjectbinMyProject.apk' is not a valid zip file
  

Я попытался очистить проект / удалить gen папку / удалить хранилище ключей отладки. Ничего не сработало;

Пожалуйста, сообщите.

Комментарии:

1. Что-то явно повреждает ваш файл .apk. Вы пробовали выполнять ant clean и перестраивать с нуля?

2. Eclipse создает за меня; я не использую ant. Инструменты сборки не могут упаковать все в действительный архив apk. Другие проекты компилируются нормально, за исключением только этого. Я попытался воссоздать новый проект Android, скопировав исходный код, но это тоже не сработало.

3. Я получаю ту же ошибку («Не удается прочитать AndroidManifest.xml «) но apk определенно является допустимым zip-файлом, и сообщение об ошибке при установке adb отличается: «Сбой [INSTALL_FAILED_ALREADY_EXISTS]» — странно, раньше у него никогда не возникало трудностей с установкой поверх существующей копии. Удаление из пользовательского интерфейса Android (Настройки => Приложения) позволило окончательно переустановить его.

Ответ №1:

Смотрите это thread they solved the issue : не удается запустить приложение из eclipse

Комментарии:

1. В моем проекте нет никаких внешних библиотек

Ответ №2:

У меня была похожая проблема, и я получал похожие журналы в консоли eclipse

 [2011-12-06 10:35:38 - MyProject] Failed to install MyProject.apk on device 
[2011-12-06 10:35:38 - MyProject] (null)
[2011-12-06 10:35:38 - MyProject] Launch canceled!
  

Но очистка и перестройка проекта решили проблему.

Ответ №3:

У меня была похожая проблема. Я скопировал zip-файл в исходную папку: -например; пакет был com.example.demo

и я поместил файл в папку com. Он показал мне ту же ошибку, что и вы. Я не уверен в вашем случае, но прежде чем снова писать код, просто проверьте весь проект, если что-то пошло не так по ошибке!!

Ответ №4:

Похоже, что Ganymede несовместим с ADT 10.0

Из http://developer.android.com/sdk/requirements.html :

Поддерживаемые среды разработки Eclipse IDE

 * Eclipse 3.5 (Galileo) or greater

  Note: Eclipse 3.4 (Ganymede) is no longer supported with the latest version of ADT.