Android Question Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES

drgottjr

Expert
Licensed User
Longtime User
I wanted to see if an app of mine would build and run on my pixel 3a with android 11 without issue if I set the target sdk in the manifest to 30 and configured android-30 for the android.jar. (B4A 10.2, latest SDK, device attached via usb, as always.)

When I compiled, I received this error:
adb: failed to install tst.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Scanning Failed.: No signature found in package of version 2 or newer for package b4a.example]

When I backed down to target sdk 29 with android-29 for the android.jar, the app compiled and deployed without a problem. As always.

So I decided to simplify by creating the "hello world" default sample. When I tried with Target SDK 30 and android-30 jar, I received the error again:
adb: failed to install hw.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Scanning Failed.: No signature found in package of version 2 or newer for package b4a.example]

When I backed down to target sdk 29 with android-29 for the android.jar, "hello world" compiled and deployed without a problem.

I rebuilt "hello world" again with target SDK 30 and android-30 jar and manually copied the apk to the device. When I tried to install, I received this error:
"You can't install the app on your device".

OK, so, maybe something wrong with the device? I have another Pixel3a (they're cheap now). Same error:
adb: failed to install hw.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Scanning Failed.: No signature found in package of version 2 or newer for package b4a.example]

This error was mentioned once previously in the forum. Different circumstances, and Erel said he wasn't able to duplicate it. Has that changed?

I compile all day long on the device without issue. There is no "version 2 or newer" of the package. No signature change (presumably, clearly indicated by successful compilation and deployment when target sdk 29 and android-29 are used). and, of course the obvious question: which certificates is it talking about?

Will we have to use a different key generation scheme for sdk 30 and up?
 

Star-Dust

Expert
Licensed User
Longtime User
It was discussed multiple times. You should use targetSdkVersion 29 for now.

B4A will support the new signing method before it targetSdkVersion 30 is required.
Sorry Erel, unfortunately I missed this topic in the forum. I didn't know there was a change in the App signing method, and today seeing this thread I was alarmed / intrigued.

Could you kindly, if possible, indicate where to find information about it (in the forum or in the official documentation) to better understand the issue and the reasons for this change?

(P.S. I searched but could not find them)
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
Upvote 0
Top