Corona's (lack of) support for Android

Hi!

I’ve recently bought a pro license for Corona, and I must say, that from my point of view, there is a clear priority for iOS features and bugs in Corona.
There is no social component that works reasonably on Android, and social tools are very important to get your game noticed and spread.
A. The Facebook component doesn’t work properly in Android and people have been complaining about this for a long time
B. Since Gree bought openFeint, there is no more support for openFeint, and looks like it’s not going to change soon.
C. Game Center isn’t relevant for android
D. people have requested HeyZap support in the feature request forums, but no-one responded.

It’s very disappointing that corona which aims to provide a top cross-platform development tool, demonstrate such a high priority to one of the platform! [import]uid: 150930 topic_id: 32189 reply_id: 332189[/import]

It’s true that iOS gets goodies first. I’m not sure of all the reasons, but I suspect that there is a higher demand for the iOS side. Many features, like IAP come to iOS first. Google is missing quite a few features too, like Game Center, so I think it’s natural for iOS to get things first.

As far as your bullet points…

a. I’m building an app that’s highly dependent on Facebook and I’m having no problems on the Android side. My Nexus 7, using the app does single sign-on just fine and executes my requests as well as the iOS side. There is no native app on the Kindle Fire, but it successfully uses the web browser login.

b., c. In fairness again, OpenFeint has been available on both platforms since I came to Corona SDK. Native Game Center didn’t get added until last winter. So to use this as an example of Android being the step child really isn’t the case. I don’t work for Coronal Labs and I’m not in the loop on their Business Development decisions, but clearly Gree and Corona SDK are not working together or this would have been solved.

d. I’ve never heard of HeyZap and I’ve never seen the request for this. But it’s logical hat Corona Labs partners with someone who’s stable and can be a long term partner so that we don’t have a “Here today, gone tomorrow” situation. I know they are looking at finding the right partner for this. Is it better to use native APIs where possible (Amazon has one or is building one, dunno if Google Play is working in this arena or not) or find a partner that works for all platforms. This isn’t easy and takes time to find the right partner.

But back to the “In fairness” bit, Corona Labs, over the most recent daily builds have been heavily Android oriented. They know there are features that need to be caught up and they are working on it. We should be getting push notifications soon. The various webViews and such have recently caught up.

Keep in mind that Corona Labs has been hammered by Apple, Amazon and Barnes and Noble chucking bombs over the wall at them, forcing them to stop what they are working on to address how the upstream vendor broke things. In the past few months alone, emergency development has had to go into a new XCode, iOS6, iPhone 5, new HD Kindles and new HD Nooks (and B&N broke everything for Corona developers in the process) and Corona Labs has had to stop what they are working on to keep it so we can submit our apps.

[import]uid: 19626 topic_id: 32189 reply_id: 128161[/import]

Thanks for your reply, Rob.

regarding facebook, i was talking about the issues in these threads (i’m sure there are more, these are just the ones i found right now):
http://developer.coronalabs.com/forum/2011/12/07/facebook-connect
http://developer.coronalabs.com/forum/2012/09/18/facebook-android-invalid-key
http://developer.coronalabs.com/forum/2012/10/14/problem-post-wall-facebook-misconfigured-login
http://developer.coronalabs.com/forum/2012/01/21/facebook-post-wall-not-working-android-device

As you can see, its been quite a while since anyone from the corona staff took their time to reply to any of these.
Besides that, Heyzap is about as common these days on android as openFeint used to be.
The thing is that I believe that if game center would also become unavailable for some reason, I’m sure much more effort would be dedicated to finding an alternative.

What does your app use facebook for?
[import]uid: 150930 topic_id: 32189 reply_id: 128253[/import]

It’s true that iOS gets goodies first. I’m not sure of all the reasons, but I suspect that there is a higher demand for the iOS side. Many features, like IAP come to iOS first. Google is missing quite a few features too, like Game Center, so I think it’s natural for iOS to get things first.

As far as your bullet points…

a. I’m building an app that’s highly dependent on Facebook and I’m having no problems on the Android side. My Nexus 7, using the app does single sign-on just fine and executes my requests as well as the iOS side. There is no native app on the Kindle Fire, but it successfully uses the web browser login.

b., c. In fairness again, OpenFeint has been available on both platforms since I came to Corona SDK. Native Game Center didn’t get added until last winter. So to use this as an example of Android being the step child really isn’t the case. I don’t work for Coronal Labs and I’m not in the loop on their Business Development decisions, but clearly Gree and Corona SDK are not working together or this would have been solved.

d. I’ve never heard of HeyZap and I’ve never seen the request for this. But it’s logical hat Corona Labs partners with someone who’s stable and can be a long term partner so that we don’t have a “Here today, gone tomorrow” situation. I know they are looking at finding the right partner for this. Is it better to use native APIs where possible (Amazon has one or is building one, dunno if Google Play is working in this arena or not) or find a partner that works for all platforms. This isn’t easy and takes time to find the right partner.

But back to the “In fairness” bit, Corona Labs, over the most recent daily builds have been heavily Android oriented. They know there are features that need to be caught up and they are working on it. We should be getting push notifications soon. The various webViews and such have recently caught up.

Keep in mind that Corona Labs has been hammered by Apple, Amazon and Barnes and Noble chucking bombs over the wall at them, forcing them to stop what they are working on to address how the upstream vendor broke things. In the past few months alone, emergency development has had to go into a new XCode, iOS6, iPhone 5, new HD Kindles and new HD Nooks (and B&N broke everything for Corona developers in the process) and Corona Labs has had to stop what they are working on to keep it so we can submit our apps.

[import]uid: 19626 topic_id: 32189 reply_id: 128161[/import]

Thanks for your reply, Rob.

regarding facebook, i was talking about the issues in these threads (i’m sure there are more, these are just the ones i found right now):
http://developer.coronalabs.com/forum/2011/12/07/facebook-connect
http://developer.coronalabs.com/forum/2012/09/18/facebook-android-invalid-key
http://developer.coronalabs.com/forum/2012/10/14/problem-post-wall-facebook-misconfigured-login
http://developer.coronalabs.com/forum/2012/01/21/facebook-post-wall-not-working-android-device

As you can see, its been quite a while since anyone from the corona staff took their time to reply to any of these.
Besides that, Heyzap is about as common these days on android as openFeint used to be.
The thing is that I believe that if game center would also become unavailable for some reason, I’m sure much more effort would be dedicated to finding an alternative.

What does your app use facebook for?
[import]uid: 150930 topic_id: 32189 reply_id: 128253[/import]

pakuniak,

Corona’s facebook support on Android “does” work and there are no known bugs with it. The reason it is not working for the developers on those forum threads is because they misconfigured it on their facebook developer page. By far the most common mistake that developers make is with the app’s hash key. Have a look at the link below on how to resolve this issue. Particularly section 5. It tells you that if your hash key is set up wrong, then facebook will log this and print the hash key that it was expecting. Just copy and paste that hash key to the facebook developer page and you’re done.
http://www.coronalabs.com/blog/2012/07/25/faq-wednesday-your-facebook-questions/

Regarding OpenFeint, as you know, it was bought by Gree and it is being deprecated by Gree by the end of this year. We’ve looked into supporting Gree, but we were not satisfied with it. It works nothing like OpenFeint or GameCenter. There is currently no dominant social platform on Android at the moment. We are actively looking into this, but in the mean-time, many Corona developers are looking into using Game Minion since it can be easily integrated via web views and network requests.

Regarding HeyZap, that is not a highly requested feature… and we have to focus on features that satisfy the majority of our customers such as Google’s push notifications, Amazon’s in-app purchase system, expansion files, etc. That said, we’re working on setting up Corona to support plug-ins so that 3rd parties such as HeyZap can write Corona plug-ins for us. This is especially needed on Android because there are just way too many 3rd party options out there, versus the options on iOS is quite limited since most developers use Apple’s services, and we will never have the resources internally to support them all. Android tends to be 10x time the work compared to iOS, so we believe moving over to an open plug-in model is the best way to address this.

In any case, yes, we are working on Android everyday here. It’s definitely not a 2nd class citizen. [import]uid: 32256 topic_id: 32189 reply_id: 128654[/import]

I have the FB sample app working on Android. I can post a message and I can post a picture.

Almost all of the issues I’ve seen relating to this FB problem usually relate to the following:

  1. Your APP ID in FB does not match what’s in your lua file.
  2. Your Key Hash does not match the Key Hash in FB.
    You Key Hash must be generated from the same keystore that you are signing your APK with. You can download a log app at Google Play to see what’s happening when your app attempts to connect to FB. It will most likely say that the Key Hash does not match. Whatever Key Hash says doesn’t match, you can actually just copy and then paste it in the Key Hash field in FB.

One thing I did find was that, when generating a Key Hash, if the keytool does not ask you for a password to your .keystore file, it most likely will not work. It should ask you for the password to your .keystore file. It will still generate key hash regardless, but it won’t work.

[import]uid: 8045 topic_id: 32189 reply_id: 128658[/import]

I also want to add that the command line tool that generates the key hash will not tell you if you enter your password wrong. Entering the wrong password will still generate a hash, but the hash will be wrong. Terrible, right?

Also, if you are using the JDK 7’s command line tool, then it will generate the wrong hash too because it uses a different encryption algorithm by default.

My advise to most people is to just enter a bad hash key into the facebook developer page, log in to facebook with your app, and then copy and paste the hash key from the Android log to your facebook developer page. That is the easiest method. [import]uid: 32256 topic_id: 32189 reply_id: 128662[/import]

Setup for Facebook is in the “Not Fun” category and is subject to plenty of opportunities to mess yourself up. It’s not quite into the “Dentist” category than iOS push notifications are with the Key/Certification processing.

@paskuniak, I’m doing a contract game for someone and it has turn-based multi-player game support similar to Word with Friends and DrawSomething. I’m using Facebook to invite players to the game. If they have the app installed, it will start a game with them, if they don’t it just sends a message to their wall inviting them to download the game. The game is using Game Minion for the game server and I also use it’s Facebook Login to manage logins to the game.
[import]uid: 19626 topic_id: 32189 reply_id: 128667[/import]

Side Note: We plan on adding facebook deep linking very soon. [import]uid: 32256 topic_id: 32189 reply_id: 128677[/import]

Thanks for getting back to me guys! Appreciate it!
I had the problem with the hash key as you mentioned, and also as you mentioned, using the keytool didn’t give me the right hash (i used JDK7), and i found the right one in the log file on my device.
I just published a follow-up question regarding the OpenGraph API.
Rob and Joshua, I’d really appreciate it if you could help me with what I’ve just posted here:
https://developer.coronalabs.com/forum/2012/10/26/facebook-graph-api-problem

Oh, and Rob, If you don’t mind sharing your FB related code that would be just awesome :slight_smile:
I would love to add challenging FB friends to my game as well… [import]uid: 150930 topic_id: 32189 reply_id: 128742[/import]

pakuniak,

Corona’s facebook support on Android “does” work and there are no known bugs with it. The reason it is not working for the developers on those forum threads is because they misconfigured it on their facebook developer page. By far the most common mistake that developers make is with the app’s hash key. Have a look at the link below on how to resolve this issue. Particularly section 5. It tells you that if your hash key is set up wrong, then facebook will log this and print the hash key that it was expecting. Just copy and paste that hash key to the facebook developer page and you’re done.
http://www.coronalabs.com/blog/2012/07/25/faq-wednesday-your-facebook-questions/

Regarding OpenFeint, as you know, it was bought by Gree and it is being deprecated by Gree by the end of this year. We’ve looked into supporting Gree, but we were not satisfied with it. It works nothing like OpenFeint or GameCenter. There is currently no dominant social platform on Android at the moment. We are actively looking into this, but in the mean-time, many Corona developers are looking into using Game Minion since it can be easily integrated via web views and network requests.

Regarding HeyZap, that is not a highly requested feature… and we have to focus on features that satisfy the majority of our customers such as Google’s push notifications, Amazon’s in-app purchase system, expansion files, etc. That said, we’re working on setting up Corona to support plug-ins so that 3rd parties such as HeyZap can write Corona plug-ins for us. This is especially needed on Android because there are just way too many 3rd party options out there, versus the options on iOS is quite limited since most developers use Apple’s services, and we will never have the resources internally to support them all. Android tends to be 10x time the work compared to iOS, so we believe moving over to an open plug-in model is the best way to address this.

In any case, yes, we are working on Android everyday here. It’s definitely not a 2nd class citizen. [import]uid: 32256 topic_id: 32189 reply_id: 128654[/import]

I have the FB sample app working on Android. I can post a message and I can post a picture.

Almost all of the issues I’ve seen relating to this FB problem usually relate to the following:

  1. Your APP ID in FB does not match what’s in your lua file.
  2. Your Key Hash does not match the Key Hash in FB.
    You Key Hash must be generated from the same keystore that you are signing your APK with. You can download a log app at Google Play to see what’s happening when your app attempts to connect to FB. It will most likely say that the Key Hash does not match. Whatever Key Hash says doesn’t match, you can actually just copy and then paste it in the Key Hash field in FB.

One thing I did find was that, when generating a Key Hash, if the keytool does not ask you for a password to your .keystore file, it most likely will not work. It should ask you for the password to your .keystore file. It will still generate key hash regardless, but it won’t work.

[import]uid: 8045 topic_id: 32189 reply_id: 128658[/import]

I also want to add that the command line tool that generates the key hash will not tell you if you enter your password wrong. Entering the wrong password will still generate a hash, but the hash will be wrong. Terrible, right?

Also, if you are using the JDK 7’s command line tool, then it will generate the wrong hash too because it uses a different encryption algorithm by default.

My advise to most people is to just enter a bad hash key into the facebook developer page, log in to facebook with your app, and then copy and paste the hash key from the Android log to your facebook developer page. That is the easiest method. [import]uid: 32256 topic_id: 32189 reply_id: 128662[/import]

Setup for Facebook is in the “Not Fun” category and is subject to plenty of opportunities to mess yourself up. It’s not quite into the “Dentist” category than iOS push notifications are with the Key/Certification processing.

@paskuniak, I’m doing a contract game for someone and it has turn-based multi-player game support similar to Word with Friends and DrawSomething. I’m using Facebook to invite players to the game. If they have the app installed, it will start a game with them, if they don’t it just sends a message to their wall inviting them to download the game. The game is using Game Minion for the game server and I also use it’s Facebook Login to manage logins to the game.
[import]uid: 19626 topic_id: 32189 reply_id: 128667[/import]

Side Note: We plan on adding facebook deep linking very soon. [import]uid: 32256 topic_id: 32189 reply_id: 128677[/import]

Glad I could help!

I’ve never tried posting a score to facebook before, so hopefully another Corona developer whose done this before can chime in on it. [import]uid: 32256 topic_id: 32189 reply_id: 128788[/import]

Thanks for getting back to me guys! Appreciate it!
I had the problem with the hash key as you mentioned, and also as you mentioned, using the keytool didn’t give me the right hash (i used JDK7), and i found the right one in the log file on my device.
I just published a follow-up question regarding the OpenGraph API.
Rob and Joshua, I’d really appreciate it if you could help me with what I’ve just posted here:
https://developer.coronalabs.com/forum/2012/10/26/facebook-graph-api-problem

Oh, and Rob, If you don’t mind sharing your FB related code that would be just awesome :slight_smile:
I would love to add challenging FB friends to my game as well… [import]uid: 150930 topic_id: 32189 reply_id: 128742[/import]

Glad I could help!

I’ve never tried posting a score to facebook before, so hopefully another Corona developer whose done this before can chime in on it. [import]uid: 32256 topic_id: 32189 reply_id: 128788[/import]