I am unable to open my existing keystore file in Android Studio or use the jarsigner
from the command line.
In both cases the error message is:
java.security.cert.CertificateException: Unable to initialize, java.io.IOException: DerInputStream.getLength(): Redundant length bytes found
See screenshot:
Apparently this was an issue that should be fixed with JDK8_131 but does not work for me. (We are all using OSX)
I also get the same error on travis. (See "Update" section below.)
I found another SO question (Signing android app throws IOException: Redundant length bytes found) where they converted the .pkc12
file to .keystore
but we are already using .keystore
I found that the build also started failing on travis because they are moving builds to their new distro trusty
which downloads the newest JDK whereas precise
used JDK7 by default. Adding dist: precise
to the top of the .travis.yml
file works for now but this is definitely not a permanent solution.
Can we only hope for a JDK update that fixes the issue or is there a way to remove the redundant length bytes from the keystore?
I also got the same error and I fixed it by following Solution 1 below. you can try Solution 1 to resolve it. Else follow the other Solutions.
Updating JDK from 7 to 8
You can run the following command to list the content of your keystore file:
keytool -list -keystore .keystore
If you are looking for a specific alias, you can also specify it in the command:
keytool -list -keystore .keystore -alias foo
If the alias is not found, it will display an exception:
keytool error: java.lang.Exception: Alias does not exist
In order to get all the details I had to add the -v
option
keytool -v -list -keystore <FileName>.keystore
It will surely help you to solve the error or you can get the contents of your keystore and can generate a new keystore of your app.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With