#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.