Я пытался использовать jarsigner.exe и adb.exe, чтобы вручную подписать пакет Android и установить его на эмуляторе API V8.Я создал простой проект HelloAndroid, и он сгенерировал бы подписанный HelloAndroid.apk, используя debug.keystore, расположенный в каталоге пользователя .android.При запуске из Eclipse он без проблем собирает и устанавливает apk на эмуляторе.
Я использовал инструменты android для экспорта неподписанного пакета приложения в отдельный каталог.Я подписал и zipAligned пакет и использовал adb для его установки, но получил ошибку:
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
Я использовал следующую команду, чтобы подписать его.
jarsigner -verbose -keystore c:\users\jhwong\.android\debug.keystore
-storepass android -keypass android -digestalg SHA-1 -sigalg SHA1withRSA
-sigfile CERT -signedjar temp\HelloWorld2.apk
temp\HelloWorld.unsigned.apk androiddebugkey
adding: META-INF/MANIFEST.MF
adding: META-INF/CERT.SF
adding: META-INF/CERT.RSA
signing: res/layout/main.xml
signing: AndroidManifest.xml
signing: resources.arsc
signing: res/drawable-hdpi/icon.png
signing: res/drawable-ldpi/icon.png
signing: res/drawable-mdpi/icon.png
signing: classes.dex
Это не дало мне никакогоошибки и просто чтобы убедиться, что я запустил:
jarsigner -verify -verbose temp\HelloWorld2.apk
Это показало, что файл был проверен и каждый файл подписан и часть манифеста.
Я запустил zipalign -v 4 temp\HelloWorld2.apk temp\HelloWorld3.apk
, который завершился без ошибок.Затем использовал adb install -r temp\HelloWorld3.apk
.
Я видел несколько связанных тем и статей, предлагающих эти указания, но я озадачен тем, почему он не работает вручную, используя Eclipse для создания подписанного пакета.Я даже взял пакет, собранный из Eclipse, и смог использовать adb.exe для его установки, поэтому я сузил его до подписания пакета.Я пробовал хранилища ключей, сгенерированные мной из хранилища ключей, но они также не работали, поэтому я попробовал debug.keystore.
Буду признателен за любые советы, если они заметят что-то не так с моимкод jarsigner.