2010-08-31 2 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

чтения Исключение разрешения/макет/main.xml в /data/app/vmdl73677.tmp

Попробуйте удалить или восстановить этот файл, а затем скомпилировать/подписать и запустить приложение

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

+0

Я внес некоторые незначительные изменения в файл и перекомпилировал/подписал. Однако я получаю точно такую ​​же ошибку. Я не думаю, что могу удалить файл, потому что он необходим для макета. –

+0

можно попробовать, оставив файл и проверить, выбрано ли исключение в одном файле – DeRagan

+0

Я попытался переименовать его в main2.xml и изменить ссылку на setContentView. У меня появилось несколько другое сообщение Исключение чтения res/layout/main2.xml в /data/app/vmdl73684.tmp java.io.IOException: Неверный атрибут 61 в java.util.jar.InitManifest.readName (InitManifest.java:150) на java.util.jar.InitManifest.readHeader (InitManifest.java:115) на java.util.jar.InitManifest.initEntries (InitManifest.java:75) на java.util.jar. Manifest.read (Manifest.java:234) на java.util.jar.Manifest. (Manifest.java:116) [и т. Д.] –

2

Я видел поврежденные .apks, которые не будут загружаться на устройстве, со странными IOExceptions. После этих шагов в Eclipse, кажется, чтобы предотвратить проблемы, которые я видел:

  1. Убедитесь, что Project -> Build автоматически выключен (то есть, бесконтрольно)
  2. Project -> Clean ... выберите «Очистить все проекты», убедитесь, что флажок «Начать сборку автоматически» не установлен, и нажмите «ОК».
  3. Использование File -> Export -> Android -> Экспорт Android приложений для создания APK
1

Причина этого заключается в том, что ваш APK не подписан.

Если вы используете eclipse, вам нужно будет подписать приложение при построении. Вы можете подписывать приложение, используя ваши ключи, если есть, или вы можете создать apk с ключами отладки, снабженными eclipse.

Процедура:.

Rtclick по проекту> Android инструментов> Экспорт Подписи пакета прикладных программ»> указать местоположение хранилища (для отладки хранилища ключей взгляда на домашней директории вашего компьютера, пароль для отладки ключа является андроидом)

+0

В этом вопросе говорится: «Я проверил подписание с помощью' jarsigner -verify'. " Как вы можете быть уверены, что apk не подписан? – LarsH