无法安装apk

5

我正在使用带有ADT 10.0插件和Android3.0 SDK的Eclipse Ganymede构建我的应用程序。

当我尝试在我的手机上部署应用程序时,控制台上显示以下内容:

[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)

当我尝试通过cmd提示符使用adb shell进行安装时,我遇到了以下问题:
EOCD not found, not Zip
file 'D:\Workspace\MyProject\bin\MyProject.apk' is not a valid zip file

我尝试过清理项目/删除gen文件夹/删除调试密钥库,但都没有起作用。
请给予建议。

你的.apk文件明显出现了一些损坏。你尝试过使用ant clean命令清理并从头开始重新构建吗? - trojanfoe
Eclipse为我构建项目,我不使用Ant。 构建工具无法将所有内容打包成有效的apk存档文件。其他项目编译都没有问题,只有这个有问题。我尝试通过复制源代码来重新创建一个新的Android项目,但也没有成功。 - Samuh
我遇到了相同的错误(“无法读取AndroidManifest.xml”),但apk文件绝对是有效的zip文件,而且来自adb install的错误消息是不同的:“Failure [INSTALL_FAILED_ALREADY_EXISTS]”——奇怪的是,以前从未在现有副本上安装时出现过困难。从Android UI(设置=>应用程序)卸载后,最终允许重新安装。 - Qwertie
4个回答

1

我的项目中没有任何外部库。 - Samuh

1

我之前也遇到了类似的问题,在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!

但是清理和重新构建项目解决了问题。


0

我曾经遇到过类似的问题。 我将一个zip文件复制到源文件夹中:例如,包名为com.example.demo

然后我把这个文件放在了com文件夹中。 它显示了和你一样的错误。 我不确定你的情况,但在重新编写代码之前,请检查整个项目是否有什么错误发生了!


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接