[INSTALL_PARSE_FAILED_NO_CERTIFICATES]

When trying to run adb install on my Corona APK I'm now getting this. I've tried manually uninstalling my APK (successfully).

The only thing that's different is that I'm building from two different machines (laptop and desktop) and this is the first time I've tried building from my laptop. The build itself works, but I can't install the APK successfully. Older APKs install okay, so it's not an ADB issue that I can see.

I've tried "adb install file.apk" and "adb install -r file.apk" and both have failed.

Logcat is showing me:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
D/AndroidRuntime( 1368):
D/AndroidRuntime( 1368): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
I/AndroidRuntime( 1368): Heap size: -Xmx64m
D/AndroidRuntime( 1368): CheckJNI is OFF
D/dalvikvm( 1368): creating instr width table
D/AndroidRuntime( 1368): --- registering native functions ---
D/dalvikvm( 1327): GC_EXPLICIT freed 370 objects / 21320 bytes in 33ms
D/PackageParser(  978): Scanning package: /data/app/vmdl16358.tmp
W/PackageParser(  978): Unknown element under <manifest>: activity at /data/app/vmdl16358.tmp Binary XML file line #48
W/PackageParser(  978): Unknown element under <manifest>: activity at /data/app/vmdl16358.tmp Binary XML file line #52
W/PackageParser(  978): Unknown element under <manifest>: activity at /data/app/vmdl16358.tmp Binary XML file line #56
W/PackageParser(  978): Unknown element under <manifest>: activity at /data/app/vmdl16358.tmp Binary XML file line #60
D/dalvikvm(  978): GC_FOR_MALLOC freed 20356 objects / 1327616 bytes in 74ms
W/PackageParser(  978): Exception reading AndroidManifest.xml in /data/app/vmdl16358.tmp
W/PackageParser(  978): java.lang.SecurityException: META-INF/ANDROIDD.SF has invalid digest for assets/webui/settings/index.json in /data/app/vmdl16358.tmp
W/PackageParser(  978):         at java.util.jar.JarVerifier.verifyCertificate(JarVerifier.java:369)
W/PackageParser(  978):         at java.util.jar.JarVerifier.readCertificates(JarVerifier.java:272)
W/PackageParser(  978):         at java.util.jar.JarFile.getInputStream(JarFile.java:392)
W/PackageParser(  978):         at Android.content.pm.PackageParser.loadCertificates(PackageParser.java:337)
W/PackageParser(  978):         at android.content.pm.PackageParser.collectCertificates(PackageParser.java:508)
W/PackageParser(  978):         at com.android.server.PackageManagerService.installPackageLI(PackageManagerService.java:5953)
W/PackageParser(  978):         at com.android.server.PackageManagerService.access$2100(PackageManagerService.java:134)
W/PackageParser(  978):         at com.android.server.PackageManagerService$6.run(PackageManagerService.java:4811)
W/PackageParser(  978):         at android.os.Handler.handleCallback(Handler.java:587)
W/PackageParser(  978):         at android.os.Handler.dispatchMessage(Handler.java:92)
W/PackageParser(  978):         at android.os.Looper.loop(Looper.java:123)
W/PackageParser(  978):         at android.os.HandlerThread.run(HandlerThread.java:60)
E/PackageParser(  978): Package com.brianhook.test has no certificates at entry AndroidManifest.xml; ignoring!

Note that this is also happening for me when doing Hello World.

Using jarsigner -verbose -verify -certs on HelloWorld.apk I'm getting a bunch of:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
s      21354 Mon Aug 01 22:29:42 EDT 2011 META-INF/MANIFEST.MF
 
      X.509, CN=Android Debug, O=Android, C=US
      [certificate expired on 1/16/11 4:53 PM]
      [CertPath not validated: null]
 
       21516 Mon Aug 01 22:29:42 EDT 2011 META-INF/ANDROIDD.SF
         784 Mon Aug 01 22:29:42 EDT 2011 META-INF/ANDROIDD.RSA
           0 Mon Aug 01 22:29:44 EDT 2011 assets/
           0 Mon Aug 01 22:29:44 EDT 2011 assets/corona/
           0 Mon Aug 01 22:29:44 EDT 2011 assets/webui/
           0 Mon Aug 01 22:29:44 EDT 2011 assets/webui/dashboard/
           0 Mon Aug 01 22:29:44 EDT 2011 assets/webui/dashboard/me/
           0 Mon Aug 01 22:29:44 EDT 2011 assets/webui/facebook/
           0 Mon Aug 01 22:29:44 EDT 2011 assets/webui/images/
           0 Mon Aug 01 22:29:44 EDT 2011 assets/webui/intro/
           0 Mon Aug 01 22:29:44 EDT 2011 assets/webui/javascripts/
           0 Mon Aug 01 22:29:44 EDT 2011 assets/webui/settings/
           0 Mon Aug 01 22:29:44 EDT 2011 assets/webui/stylesheets/
           0 Mon Aug 01 22:29:44 EDT 2011 lib/
           0 Mon Aug 01 22:29:44 EDT 2011 lib/armeabi-v7a/
           0 Mon Aug 01 22:29:44 EDT 2011 res/
           0 Mon Aug 01 22:29:44 EDT 2011 res/drawable/
           0 Mon Aug 01 22:29:44 EDT 2011 res/drawable-hdpi/
           0 Mon Aug 01 22:29:44 EDT 2011 res/drawable-ldpi/
           0 Mon Aug 01 22:29:44 EDT 2011 res/drawable-mdpi/
           0 Mon Aug 01 22:29:44 EDT 2011 res/layout/
           0 Mon Aug 01 22:29:44 EDT 2011 res/menu/
           0 Mon Aug 01 22:29:44 EDT 2011 res/values/
sm      3188 Tue Aug 02 02:29:20 EDT 2011 AndroidManifest.xml
 
      X.509, CN=Android Debug, O=Android, C=US
      [certificate expired on 1/16/11 4:53 PM]
      [CertPath not validated: null]
 
sm     14975 Mon Aug 01 22:29:44 EDT 2011 assets/corona/Icon@2x.png
 
      X.509, CN=Android Debug, O=Android, C=US      [certificate expired on 1/16/11 4:53 PM]      [CertPath not validated: null]sm       644 Tue Aug 02 02:29:20 EDT 2011 assets/corona/resource.car
 
      X.509, CN=Android Debug, O=Android, C=US      [certificate expired on 1/16/11 4:53 PM]      [CertPath not validated: null]
sm     40538 Mon Aug 01 22:29:44 EDT 2011 assets/corona/world.jpg
 
      X.509, CN=Android Debug, O=Android, C=US
      [certificate expired on 1/16/11 4:53 PM]
      [CertPath not validated: null]
 
sm      4929 Tue Aug 02 02:29:22 EDT 2011 assets/webui/dashboard/achievements.json

What version of Corona are you using?

I'm using 505. This JUST started for me. Since it's happening with HelloWorld I'm guessing it's either something on your side or there's something corrupted on my system somewhere (temp files, etc.)?

Just updated and tried again with the latest trial downloadable build and I'm running into the same problems.

I'm pretty much dead in the water at this point.

What device and OS version? Thanks

Rooted Nook Color running Froyo 2.2.

NOTE: I'm only using the Nook Color as an Android test device, i am NOT trying to support this

Right now I think it's something to do with build configurations on local machines. I'm going to test this by building an APK with my desktop machine and then building an APK with my laptop and see if it makes a difference.

I just took a Build 515 APK built on my desktop and successfully installed it. I took a Build 591 APK built on my laptop and it did NOT install. So this is not an issue with the Nook Color or USB attached system, but something specific with how APKs are being built on my laptop.

I can provide both APKs if you'd like.

Problem fixed with the stellar help of Joshua Quick and the ANSCA Support team. It looks like you must have JDK6, and my laptop had JDK7 on it which was causing the failures.

Hello Brian,

Thanks for the kind words and I'm glad it is now working for you!

We will look into making the Corona SDK work with JDK 7 to avoid this issue in the future.

You might just want to do a quick version check during build just so people aren't going down the wrong path trying to figure out what happened. I would have saved about 4 hours if I had just received a dialog box saying "Hey buddy, you're using JDK7 and we don't support that!" =)

I believe we're doing something like a ">= 6" version check in the registry so that the build system will ignore JDK 5. In hindsight, that wasn't such a hot idea and we should do a more direct version check. We'll try to make it a little less painful. :P

I'm having the same issue. However, after downloading the JDK 6 (installing alongside JDK 7,) the issue persists.

I'm trying to install the EggBreaker sample. And I am using the trial version.

Any idea when JDK 7 will be supported?

Corona Version: 591
Device: Samsung Infuse 4G

-Eric

My guess is that the Corona SDK is still finding the JDK7 installation, but ANSCA should know for sure.

Everyone,

The release version of the Corona SDK (build 591) wrongly uses JDK 7 to sign Android APKs, even if JDK 6 is installed. This has been fixed in the latest daily build (as of build 600) which is available via the following link if you're a subscriber.
https://developer.anscamobile.com/downloads/daily-builds/

If you are a trial user, then unfortunately the only simple work-around is to uninstall JDK 7.

Thanks for the quick response!

I downloaded JDK6 and uninstalled JDK7 and it installed successfully. Happy to report that Eggbreaker and Ghosts vs Monsters works great on the Infuse 4G. :)

Not that it matters for me, (I wasn't really using anything specific in JDK7, so the downgrade caused no grief), but I could see this being a show-stopper for others testing out the software. The first thing I wanted to do was see how well the engine ran on my Android devices. +1 to whoever posted previously that, until you update the trial version, at least a disclaimer/warning/something on the download page or readme regarding the JDK 6/7 problem would help.

Anyway, looking forward to playing around with Corona this weekend. Thanks again!

-Eric

Hi Eric,

I agree with you. I'm actually pushing for a quick release build to address the JDK 7 issue. It was an unfortunate thing because JDK 7 was released just before our Corona release and it didn't make it into our test cycle. We had no idea that the default signing algorithm would change on us so we had to scramble to fix it. Luckily, this is where our daily build system shines through for our subscribers so that we can quickly address issues like this. We had to do the same with the recent release of Lion and I'm sure we'll have to do some kind of update for iPhone 5 (due to Apple being secretive as usual).

Anyways, I'm glad it's working for you now... and by all means have fun with Corona!

Had the same problem with the apk's not installing on my device.
I also did go for jdk 7 on their page, stupid me.
Unistalled jdk7 and installed jdk6 but I get a error when pressing build. "Can't find jdk7"
Thinking Corona was hooked to jdk7 during installation, I unistalled Corona and installed it again but still have the same problem.

Any idea what I should do?
Is there a way to give corona the path to jdk6?

Want to add that I'm using CPM, but I don't think that would have anything to do with this.

Please help, I want to install my app :-)

Hello bergapappa,

The Corona SDK requires the "32-bit" version of JDK 6. The most likely case is you have the 64-bit version installed. Please install the 32-bit version and try again.
(You don't have to uninstall the 64-bit version.)

Thanks for the quick response!

No, I don't think I have.
I choose the x86 version and not the x64, I guess x86==32 bit?
Sorry I did not say before, in on a Windows Vista.

I think it sounds lika a path problem when it say "cannot find jdk7" and showing a path. But it's looking for the wrong thing now then I have uninstalled JDK7 and installed JDK6.

Any other ideas?

Regards

Hello bergapappa,

You are correct that x86 is the 32-bit version. And yes, we support Windows Vista (along with XP and 7).

You shouldn't be getting a message stating "Cannot find JDK7" from the Corona SDK. Corona explicitly states that it requires the 32-bit version of the JDK 6 when you attempt to build for Android. Can you send us a screenshot of this warning message please? You can send us attachments when reporting a bug to us via the "Report a Bug" link at the top of this web page.

views:6368 update:2011/10/7 17:24:19
corona forums © 2003-2011