Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: … has no certificates at entry AndroidManifest.xml]


For a long time, We used packer-ng-plugin and didn’t notice the difference between using Android Studio for packaging. Today, I wrote a demo and found that only one installation was successful after I typed in my signature, and the following were all installation errors: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Package /data/app/vmdl924957567.tmp/base.apk has no certificates at entry AndroidManifest.xml]
Analyze and find the cause of the problem:
Possible cause: A mobile version problem?Google later found that there are actually two versions of Signature. APK Signature Scheme v2 is introduced in Android7.0, and v1 is jar Signature from JDK. I was using Android Studio3.1, and it was only through a query that I knew there was a difference between the two versions. The old version probably didn’t and didn’t notice the change very much. After all, you don’t need signature packaging every day, and you don’t need to move it once it’s configured, so you don’t notice it.
V1: It should be verified by a ZIP entry so that APK can be signed for many changes – you can move or even recompress the file.
V2: Validates all bytes of the compressed file, not a single ZIP entry, so it cannot be changed after signing (including Zipalign). Because of this, we now merge compression, tuning, and signing in one step during compilation. The benefits are obvious, more secure, and the new signature speeds up the application installation by reducing the time it takes to validate on the device (without the time-consuming process of decompressing and validating).

v1 and v2 signatures are used
It doesn’t matter if you just check the V1 signature, but won’t you use more secure authentication on 7.0
If only check V2 signature 7.0, the installation will be finished and the installation will not be displayed. If 7.0 is above, V2 verification will be used
If I check V1 and V2, all the models are ok
But I did check both of them, and I tried different combinations of them, none of them (it will tell you to pick at least one), pick one, pick two, it’s the same error, it says base APK has no signature.
I found the Stack Overflow and someone had the same problem, but it was just a simple thing to check two and solve it. After a long time, a day, uncomfortable, congestion panic, do other things to…
And changed a cell phone or the same error. Changed a demo project, changed a keystore and still got the same error!!
When I went back to the computer at night, I inadvertently found the difference in the screenshots in the new demo project. I used to find the signed package in the build-out-APk-Release folder, but this installation was not successful. And from the name you can see that it’s app-release-unsigned. Apk, but there is an additional release folder on the bottom, where the file is installed normally.
So I delete this file, and then just use 1, the command line package; Or 2, wrap it formally with Android Studio, and this folder does not appear. How strange!! I have entered various password aliases for secret keys before!! Why can’t you get a normal bag?Once before I packed a formal installation is normal ah!!
Inadvertently click on the steps to enter the signature information,!! Need you to enter the secret key information again!! After typing, use the Android Studio button again to package, or the command to package, the folder will come out. There’s a folder release in the main project, and the signature file that’s next to it is the normal app-release.apk. The installation is in order. Apk is app-release-unsigned. Apk. Unsigned, of course, will get an error.

So to summarize, the solution is this: if you type in the signature key again, put it in the official package, it will generate a folder under the main project called Release, and the app-Release.apk in the side here will be signed normally. The build-out-apk-unsigned. Apk generated at the same time will not be installed successfully. The package is not fully signed. Why this should be is not clear. I hope it can help you solve the same problem you have.
 

Read More: