【问题标题】:Unable to install apk无法安装apk
【发布时间】:2011-05-06 15:04:21
【问题描述】:

我正在使用带有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 并从头开始重建?
  • Eclipse 为我构建;我不使用蚂蚁。构建工具无法将所有内容打包到有效的 apk 存档中。除了这个,其他项目都可以编译。我尝试通过复制源代码来重新创建一个新的 Android 项目,但这也不起作用。
  • 我收到同样的错误(“无法读取 AndroidManifest.xml”),但 apk 绝对是一个有效的 zip 文件,并且来自 adb install 的错误消息不同:“失败 [INSTALL_FAILED_ALREADY_EXISTS]”- - 奇怪,以前在现有副本上安装从来没有困难过。从 Android UI(设置 => 应用程序)卸载后,它最终可以重新安装。

标签: android aapt


【解决方案1】:

看到这个thread they solved the issuecan't launch the application from eclipse

【讨论】:

  • 我的项目中没有任何外部库
【解决方案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.
      

      【讨论】:

        猜你喜欢
        • 2017-08-10
        • 2012-12-01
        • 1970-01-01
        • 2014-12-21
        • 2017-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多