Я закончил приложение для Android и сейчас пытаюсь подписать его в режиме выпуска. Я создал хранилище ключей и обновил свои встроенные свойства, чтобы проверить соответствующий файл хранилища ключей и псевдоним. Все компилируется просто отлично, и мне представлен хороший файл apk. Однако, когда я пытаюсь установить это на мобильном устройстве, я получаю сообщение об ошибке «Невозможно прочитать AndroidManifest.xml». Согласно документации Android, предоставление хранилища ключей / псевдонима через свойства сборки автоматически подпишет и выровняет окончательный файл apk.
Если я переименую apk-файл в zip-файл, я действительно смогу увидеть все, что есть. Я не уверен, какие шаги предпринять, чтобы решить эту проблему. Я делаю все из командной строки, и не использую Eclipse. Если я установлю свое приложение с помощью отладочной версии, оно будет работать нормально.
Вот вывод команды ant ([[ПАРОЛЬ]] - мой пароль, а MYALIAS - мой псевдоним). «CApp» является основным видом деятельности.
> D:\Development\Projects\Dash>ant release Buildfile:
> D:\Development\Projects\Dash\build.xml
> [setup] Android SDK Tools Revision 11
> [setup] Project Target: Android 2.1-update1
> [setup] API level: 7
> [setup]
> [setup] ------------------
> [setup] Resolving library dependencies:
> [setup] No library dependencies.
> [setup]
> [setup] ------------------
> [setup]
> [setup]
> [setup] Importing rules file: tools\ant\main_rules.xml
>
> -set-release-mode:
> [echo] *************************************************
> [echo] **** Android Manifest has debuggable=true ****
> [echo] **** Doing DEBUG packaging with RELEASE keys ****
> [echo] *************************************************
>
> -release-obfuscation-check:
>
> -pre-build:
>
> -dirs:
> [echo] Creating output directories if needed...
> [mkdir] Created dir: D:\Development\Projects\Dash\bin
> [mkdir] Created dir: D:\Development\Projects\Dash\gen
> [mkdir] Created dir: D:\Development\Projects\Dash\bin\classes
>
> -aidl:
> [echo] Compiling aidl files into Java classes...
>
> -renderscript:
> [echo] Compiling RenderScript files into Java classes and RenderScript bytecode...
>
> -resource-src:
> [echo] Generating R.java / Manifest.java from the resources...
>
> -pre-compile:
>
> compile:
> [javac] D:\Development\Libraries\android-sdk-windows\tools\ant\main_rules.xml:384:
> warning: 'includeantruntime' was not set, defaulting to
> build.sysclasspat h=last; set to false for repeatable builds
> [javac] Compiling 14 source files to D:\Development\Projects\Dash\bin\classes
>
> -post-compile:
>
> -obfuscate:
>
> -dex:
> [echo] Converting compiled files and external libraries into D:\Development\Projects\Dash\bin\classes.dex...
>
> -package-resources:
> [echo] Packaging resources
> [aapt] Creating full resource package... [aapt.exe] Warning: AndroidManifest.xml already defines debuggable (in
> http://schemas.android.com/apk/res/android); using existing value in
> manifest.
>
> -package-release: [apkbuilder] Creating CApp-unsigned.apk for release...
>
> -release-prompt-for-password:
> [input] Please enter keystore password (store:1.keystore): [[PASSWORD]]
> [input] Please enter password for alias 'MYALIAS': [[PASSWORD]]
>
> -release-nosign:
>
> release:
> [echo] Signing final apk... [signjar] Signing JAR: D:\Development\Projects\Dash\bin\CApp-unsigned.apk to
> D:\Development\Projects\Dash\bin\CApp-unaligned.apk as MYALIAS
> [echo] Running zip align on final apk...
> [echo] Release Package: D:\Development\Projects\Dash\bin\CApp-release.apk
>
> BUILD SUCCESSFUL Total time: 16 seconds