2010-08-31 117 views
14

我剛剛將我的第一個應用程序敲在一起,已經發布並簽名並轉移到我的手機,但無法將其安裝到手機上 - 在屏幕上顯示'您是否想要安裝這個應用程序「並點擊安裝,我只是收到一條消息,說'應用程序未安裝',沒有進一步的解釋。我使用jarsigner -verify檢查了簽名。無法在手機上安裝.apk

我已將.apk上傳到http://ubuntuone.com/p/ESB/,並使用手機上的LogCollector應用程序獲取日誌。相關摘錄如下。

Log Collector version: 1.1.0 
Device model: HTC Desire 
Firmware version: 2.2 
Kernel version: 2.6.32.15-gf9c0527 
[email protected]) 
#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 

非常感謝您的幫助。


編輯02/09/2010 我已經刪除幾乎所有的空格再次修改main.xml中的文件。它仍然沒有安裝,但不是完全相同的錯誤:它聲稱有一個zip文件錯誤,雖然我注意到證書確實出現在列表的下面。如果這不是我顯然做錯了,如果我在android開發人員郵件列表中提出,會更好嗎?

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 

回答

0

有試圖簽下名爲main.xml中的文件

異常讀數RES /佈局/ main.xml中在/data/app/vmdl73677.tmp

所提出的一些異常

嘗試刪除或重新創建該文件,然後編譯/標誌和運行應用程序

http://www.google.com/support/forum/p/Android%20Market/thread?tid=11b65a3c2807848a&hl=en

+0

我對這個文件做了一些小的修改並重新編譯/簽名,但是我得到了完全相同的錯誤 我不認爲我可以刪除該文件,因爲它需要佈局。 – 2010-08-31 11:23:33

+0

可以嘗試保留該文件並檢查異常是否在同一文件上拋出 – DeRagan 2010-08-31 11:58:28

+0

我試着將其重命名爲main2.xml並將引用更改爲setContentView。我現在得到了稍微不同的消息 異常讀取/data/app/vmdl73684.tmp中的res/layout/main2.xml java.io.IOException:無效的屬性61 at java.util.jar.InitManifest.readName( InitManifest.java:150) at java.util.jar.InitManifest.readHeader(InitManifest.java:115) at java.util.jar.InitManifest.initEntries(InitManifest.java:75) at java.util.jar。 Manifest.read(Manifest.java:234) at java.util.jar.Manifest。 (Manifest.java:116) [etc] – 2010-08-31 12:43:16

2

我已經看到損壞的.apks不會加載到設備上,出現奇怪的IOExceptions。繼在Eclipse這些措施似乎阻止我見過的問題:

  1. 請確保項目 - >自動構建被關閉(即未選中)
  2. 項目 - >清除...,選擇「清理所有項目」,確保未選中「自動啓動構建」複選框,然後單擊「確定」。
  3. 使用文件 - >導出 - > Android的 - >導出Android應用程序創建APK
1

這樣做的原因是,您的APK未簽名。

如果您使用的是Eclipse,您需要在構建時簽署應用程序。您可以使用您的密鑰對應用程序進行簽名(如果有的話),或者您可以使用eclipse提供的調試密鑰創建一個apk。

程序:

Rtclick項目>的Android工具>導出簽名的應用程序包」>指定密鑰存儲位置(在您的計算機的主目錄調試密鑰庫的外觀,調試密鑰的密碼是機器人)

+0

問題說:「我使用'jarsigner -verify'檢查了簽名。」你怎麼確定apk沒有被簽名? – LarsH 2017-08-28 18:12:01