Android 无法在手机上安装.apk

Android 无法在手机上安装.apk,android,installation,Android,Installation,我刚刚拼凑了我的第一个应用程序,发布并签署了它,并传输到了我的手机上,但无法在我的手机上安装它-在浏览屏幕说“你想安装这个应用程序吗”并单击“安装”后,我只收到一条消息说“应用程序未安装”,没有进一步解释。我已经使用jarsigner-verify检查了签名 我已将.apk上载到并使用手机上的LogCollector应用程序获取日志。相关摘录转载如下 Log Collector version: 1.1.0 Device model: HTC Desire Firmware version: 2

我刚刚拼凑了我的第一个应用程序,发布并签署了它,并传输到了我的手机上,但无法在我的手机上安装它-在浏览屏幕说“你想安装这个应用程序吗”并单击“安装”后,我只收到一条消息说“应用程序未安装”,没有进一步解释。我已经使用
jarsigner-verify
检查了签名

我已将.apk上载到并使用手机上的LogCollector应用程序获取日志。相关摘录转载如下

Log Collector version: 1.1.0
Device model: HTC Desire
Firmware version: 2.2
Kernel version: 2.6.32.15-gf9c0527
htc-kernel@and18-2 )
#1 PREEMPT Fri Jul 23 17:26:53 CST 2010
Build number: FRF91

08-31 10:18:21.289 I/ActivityManager(   93): Starting activity: Intent { act=android.intent.action.VIEW dat=file:///sdcard/blanket.apk typ=application/vnd.android.package-archive cmp=com.android.packageinstaller/.PackageInstallerActivity }
08-31 10:18:21.359 I/PackageParser(20453): uk.co.oketchup.blanketsquare: compat added android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_PHONE_STATE
08-31 10:18:21.379 D/skia    (20453): --- decoder->decode returned false
08-31 10:18:21.669 I/ActivityManager(   93): Displayed activity com.android.packageinstaller/.PackageInstallerActivity: 331 ms (total 331 ms)
08-31 10:18:22.059 D/PowerManagerService(   93): New lightsensor value:640, lcdValue:192
08-31 10:18:22.390 D/SynchronizationService(20285): Checking preferences
08-31 10:18:22.769 I/ActivityManager(   93): Starting activity: Intent { dat=file:///sdcard/blanket.apk cmp=com.android.packageinstaller/.InstallAppProgress (has extras) }
08-31 10:18:22.849 D/skia    (20453): --- decoder->decode returned false
08-31 10:18:22.999 D/dalvikvm(20459): GC_EXPLICIT freed 419 objects / 23968 bytes in 74ms
08-31 10:18:23.089 D/PackageParser(   93): Scanning package: /data/app/vmdl73677.tmp
08-31 10:18:23.099 I/PackageParser(   93): uk.co.oketchup.blanketsquare: compat added android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_PHONE_STATE
08-31 10:18:23.129 I/ActivityManager(   93): Displayed activity com.android.packageinstaller/.InstallAppProgress: 320 ms (total 320 ms)
08-31 10:18:23.139 W/PackageParser(   93): Exception reading res/layout/main.xml in /data/app/vmdl73677.tmp
08-31 10:18:23.139 W/PackageParser(   93): java.io.IOException
08-31 10:18:23.139 W/PackageParser(   93): at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:207)
08-31 10:18:23.139 W/PackageParser(   93): at java.util.zip.ZipFile$ZipInflaterInputStream.read(ZipFile.java:432)
08-31 10:18:23.139 W/PackageParser(   93): at java.io.FilterInputStream.read(FilterInputStream.java:130)
08-31 10:18:23.139 W/PackageParser(   93): at org.apache.harmony.luni.util.InputStreamHelper.readFullyAndClose(InputStreamHelper.java:174)
08-31 10:18:23.139 W/PackageParser(   93): at java.util.jar.JarFile.getManifest(JarFile.java:307)
08-31 10:18:23.139 W/PackageParser(   93): at java.util.jar.JarFile.getInputStream(JarFile.java:385)
08-31 10:18:23.139 W/PackageParser(   93): at android.content.pm.PackageParser.loadCertificates(PackageParser.java:338)
08-31 10:18:23.139 W/PackageParser(   93): at android.content.pm.PackageParser.collectCertificates(PackageParser.java:509)
08-31 10:18:23.139 W/PackageParser(   93): at com.android.server.PackageManagerService.installPackageLI(PackageManagerService.java:5961)
08-31 10:18:23.139 W/PackageParser(   93): at com.android.server.PackageManagerService.access$2100(PackageManagerService.java:138)
08-31 10:18:23.139 W/PackageParser(   93): at com.android.server.PackageManagerService$5.run(PackageManagerService.java:4819)
08-31 10:18:23.139 W/PackageParser(   93): at android.os.Handler.handleCallback(Handler.java:587)
08-31 10:18:23.139 W/PackageParser(   93): at android.os.Handler.dispatchMessage(Handler.java:92)
08-31 10:18:23.139 W/PackageParser(   93): at android.os.Looper.loop(Looper.java:144)
08-31 10:18:23.139 W/PackageParser(   93): at android.os.HandlerThread.run(HandlerThread.java:60)
08-31 10:18:23.139 W/PackageParser(   93): Caused by: java.util.zip.DataFormatException: data error
08-31 10:18:23.139 W/PackageParser(   93): at java.util.zip.Inflater.inflateImpl(Native Method)
08-31 10:18:23.139 W/PackageParser(   93): at java.util.zip.Inflater.inflate(Inflater.java:255)
08-31 10:18:23.139 W/PackageParser(   93): at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:188)
08-31 10:18:23.139 W/PackageParser(   93): ... 14 more
08-31 10:18:23.149 E/PackageParser(   93): Package uk.co.oketchup.blanketsquare has no certificates at entry res/layout/main.xml; ignoring!
08-31 10:18:23.269 D/dalvikvm(   93): GC_EXPLICIT freed 5970 objects / 337960 bytes in 107ms
08-31 10:18:24.729 I/InstallAppProgress(20453): Finished installing uk.co.oketchup.blanketsquare
非常感谢你的帮助


2010年9月2日编辑 我删除了几乎所有的空白,再次修改了main.xml文件。它仍然没有安装,但不是完全相同的错误:它声称有一个zip文件错误,尽管我注意到证书确实出现在列表的后面。若这不是我明显做错的事情,那个么若我在安卓开发者邮件列表上提出来会更好吗

09-02 17:33:32.819 W/PackageParser(   93): Exception reading /data/app/vmdl73692.tmp
09-02 17:33:32.819 W/PackageParser(   93): java.io.IOException
09-02 17:33:32.819 W/PackageParser(   93): at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:207)
09-02 17:33:32.819 W/PackageParser(   93): at java.util.zip.ZipFile$ZipInflaterInputStream.read(ZipFile.java:432)
09-02 17:33:32.819 W/PackageParser(   93): at java.io.FilterInputStream.read(FilterInputStream.java:130)
09-02 17:33:32.819 W/PackageParser(   93): at org.apache.harmony.luni.util.InputStreamHelper.readFullyAndClose(InputStreamHelper.java:174)
09-02 17:33:32.819 W/PackageParser(   93): at java.util.jar.JarFile.readMetaEntries(JarFile.java:360)
09-02 17:33:32.819 W/PackageParser(   93): at java.util.jar.JarFile.<init>(JarFile.java:237)
09-02 17:33:32.819 W/PackageParser(   93): at java.util.jar.JarFile.<init>(JarFile.java:218)
09-02 17:33:32.819 W/PackageParser(   93): at android.content.pm.PackageParser.collectCertificates(PackageParser.java:471)
09-02 17:33:32.819 W/PackageParser(   93): at com.android.server.PackageManagerService.installPackageLI(PackageManagerService.java:5961)
09-02 17:33:32.819 W/PackageParser(   93): at com.android.server.PackageManagerService.access$2100(PackageManagerService.java:138)
09-02 17:33:32.819 W/PackageParser(   93): at com.android.server.PackageManagerService$5.run(PackageManagerService.java:4819)
09-02 17:33:32.819 W/PackageParser(   93): at android.os.Handler.handleCallback(Handler.java:587)
09-02 17:33:32.819 W/PackageParser(   93): at android.os.Handler.dispatchMessage(Handler.java:92)
09-02 17:33:32.819 W/PackageParser(   93): at android.os.Looper.loop(Looper.java:144)
09-02 17:33:32.819 W/PackageParser(   93): at android.os.HandlerThread.run(HandlerThread.java:60)
09-02 17:33:32.819 W/PackageParser(   93): Caused by: java.util.zip.DataFormatException: data error
09-02 17:33:32.819 W/PackageParser(   93): at java.util.zip.Inflater.inflateImpl(Native Method)
09-02 17:33:32.819 W/PackageParser(   93): at java.util.zip.Inflater.inflate(Inflater.java:255)
09-02 17:33:32.819 W/PackageParser(   93): at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:188)
09-02 17:33:32.819 W/PackageParser(   93): ... 14 more
09-02 17:33:32.819 W/PackageParser(93):异常读取/data/app/vmdl73692.tmp
09-02 17:33:32.819 W/PackageParser(93):java.io.IOException
09-02 17:33:32.819 W/PackageParser(93):位于java.util.zip.InflaterInputStream.read(InflaterInputStream.java:207)
09-02 17:33:32.819 W/PackageParser(93):位于java.util.zip.ZipFile$ZipInflaterInputStream.read(ZipFile.java:432)
09-02 17:33:32.819 W/PackageParser(93):在java.io.FilterInputStream.read(FilterInputStream.java:130)
09-02 17:33:32.819 W/PackageParser(93):位于org.apache.harmony.luni.util.InputStreamHelper.readFullyAndClose(InputStreamHelper.java:174)
09-02 17:33:32.819 W/PackageParser(93):位于java.util.jar.JarFile.readMetaEntries(JarFile.java:360)
09-02 17:33:32.819 W/PackageParser(93):位于java.util.jar.JarFile.(JarFile.java:237)
09-02 17:33:32.819 W/PackageParser(93):位于java.util.jar.JarFile.(JarFile.java:218)
09-02 17:33:32.819 W/PackageParser(93):位于android.content.pm.PackageParser.collectCertificates(PackageParser.java:471)
09-02 17:33:32.819 W/PackageParser(93):位于com.android.server.PackageManagerService.installPackageLI(PackageManagerService.java:5961)
09-02 17:33:32.819 W/PackageParser(93):位于com.android.server.PackageManagerService.access$2100(PackageManagerService.java:138)
09-02 17:33:32.819 W/PackageParser(93):位于com.android.server.PackageManagerService$5.run(PackageManagerService.java:4819)
09-02 17:33:32.819 W/PackageParser(93):位于android.os.Handler.handleCallback(Handler.java:587)
09-02 17:33:32.819 W/PackageParser(93):位于android.os.Handler.dispatchMessage(Handler.java:92)
09-02 17:33:32.819 W/PackageParser(93):位于android.os.Looper.loop(Looper.java:144)
09-02 17:33:32.819 W/PackageParser(93):在android.os.HandlerThread.run(HandlerThread.java:60)
09-02 17:33:32.819 W/PackageParser(93):原因:java.util.zip.DataFormatException:数据错误
09-02 17:33:32.819 W/PackageParser(93):位于java.util.zip.Inflater.inflateImpl(本机方法)
09-02 17:33:32.819 W/PackageParser(93):at java.util.zip.Inflater.inflate(Inflater.java:255)
09-02 17:33:32.819 W/PackageParser(93):位于java.util.zip.InflaterInputStream.read(InflaterInputStream.java:188)
09-02 17:33:32.819 W/PackageParser(93):。。。14多

尝试对名为main.xml的文件进行签名时出现一些异常

在/data/app/vmdl73677.tmp中读取res/layout/main.xml时出现异常

尝试删除或重新创建该文件,然后编译/签名并运行应用程序


我看到损坏的.apk无法加载到设备上,但有奇怪的异常。在Eclipse中遵循以下步骤似乎可以避免我所看到的问题:

  • 确保“项目->自动生成”已关闭(即未选中)
  • 项目->清理…,选择“清理所有项目”,确保未选中“自动启动生成”复选框,然后单击确定
  • 使用文件->导出->Android->导出Android应用程序来创建APK

  • 原因是您的apk没有签名

    如果您使用的是eclipse,则需要在构建应用程序时对其进行签名。您可以使用您的密钥对应用程序进行签名(如果有的话),也可以使用eclipse提供的调试密钥创建apk

    程序:


    Rtclick on project>Android tools>Export Signed application package“>指定密钥库位置(对于调试密钥库,请查看计算机的主目录,调试密钥的密码为Android).

    我对文件做了一些小的更改并重新编译/签名。但是,我得到了完全相同的错误。我认为我无法删除该文件,因为它是布局所需的。您是否可以尝试保留该文件并检查是否在同一个文件上引发了异常?我尝试将其重命名为main2.xml并将引用更改为setContentView。我已现在,在/data/app/vmdl73684.tmp java.io.IOException:java.util.jar.InitManifest.readName(InitManifest.java:150)处java.util.jar.InitManifest.readHeader(InitManifest.java:115)处java.util.jar.InitManifest.initEntries处出现了一个稍微不同的异常消息res/layout/main2.xml(InitManifest.java:75)在java.util.jar.Manifest.read(Manifest.java:234)在java.util.jar.Manifest.(Manifest.java:116)[etc]到目前为止,错误仍然指向同一个xml文件。此时我无法更好地帮助您。您可以尝试直接从Eclipse对apk进行签名(使用android插件)使用eclipse签名器。只需将您的应用程序导出为android应用程序问题是“我已使用
    jarsigner-verify
    ”检查签名,您如何确保apk未签名?