Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Android: Solution "Install Parse Failed No Certificates"

DZone's Guide to

Android: Solution "Install Parse Failed No Certificates"

· Mobile Zone
Free Resource

Download this comprehensive Mobile Testing Reference Guide to help prioritize which mobile devices and OSs to test against, brought to you in partnership with Sauce Labs.

When I am trying to install a third party apk using the ADB tool, I have faced "Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]" error.

To resolve the issue, I have followed these few steps.

Open command prompt; Go to your debug.keystore location.

For eg:

You can find the debug.keystore file in the following location

C:\Documents and Settings\User\.android

1. Using Zip align copied apk.

zipalign -v 4 D:\Test.apk D:\Testc.apk

2. keytool -genkey -v -keystore debug.keystore -alias sampleName -keyalg RSA -keysize 2048 -validity 20000

Now a prompt will ask for

  • Password
  • First and lastname
  • Name of Organization unit
  • Name of Organization
  • City
  • State
  • Country

After entering these fields we get our Certificate

3. jarsigner -verbose -keystore debug.keystore D:\Testc.apk sampleName


In some cases we need add -sigalg SHA1withRSA -digestalg SHA1 arguments to work out the step 3

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore debug.keystore D:\Testc.apk sampleName
Now it will ask for the password and then it will replace the apk with the signed one.

To check whether it is working or not, you can check using the following command.

jarsigner -verify D:\Testc.apk

Then I have installed apk using ADB.

Adb install D:\Testc.apk

Analysts agree that a mix of emulators/simulators and real devices are necessary to optimize your mobile app testing - learn more in this white paper, brought to you in partnership with Sauce Labs.

Topics:
mobile ,android ,apk ,adb

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}