I am stuck for 5 days regarding Inn-App purchase flow. I have uploaded a version with amazon in-app 3 months ago in Amazon store. It worked well. I was able to sell in-game items through it. But, few days ago, I launched a new version of it including amazon mobile ads. And surprisingly, my app was rejected due to in-app purchase error. I updated the code little, re-submitted (didnt update app version code and version name), but got the same bug report from amazon testing team. I don't have any clue about this. My previous version worked so well, and in this version, I maintained all the purchasing flow exact same.
There is a new settings in my developer portal called Security Profile. I have not include it in my app.Is that any related to in-app purchasing ? (I also included amazon game circle in my app).
The main problem is, amazon testing team is not getting live response i.e IAP API calls are not being performed in a "Live" mode. Means, onSdkAvailable() is returning false.
My code is exactly the same as their ButtonClicker example.
The receiver is properly set on the manifest.
I use following lines in proguard,
-keep public class com.amazon.**
-keepclassmembers public class com.amazon.*{ ; }
-dontwarn com.amazon.*
As I dont have any real kindle fire device, so, resolving this issue is getting difficult for me. I am testing the app installing amazon test client in my android device. And, everything works fine there.
So my questions are,
How to make sure that IAP API calls perform in a "Live" mode ? Is there any settings which have to handle at amazon mobile distribution portal ?
Is updating version code and version name will solve that problem ?
Any other solution ?
Please help me out ..
I had IAP application and checked with SDK tester and submitted, there was not a problem. Are you sure it is IAP problem, as your application was working fine previously. was it rejected for new api's which you added in the application.
Raise issue on amazon contactus (https://developer.amazon.com/help/contactus.html). those guys will answer. As they have records why your application got rejected. and the response is pretty neat.
after struggling, I had figure out the actual problem..
In my proguard, I wrote,
keep public class com.amazon
later, I define,
keep class com.amazon**
and my problem solve. So, that was a problem of pro-guard.
Related
My app uses Google App Engine as backend and it provides google plus & facebook login option to user.
One of the endpoint Api takes user profile picture url as input parameter and tries to store it in the user profile table. My endpoint Api was not getting called successfully when user choose the option of google plus as login,
I have narrowed down the issue to find out that it only happens during google plus login scenario and from the backend logs I see the issue is only because of below parameter which is profile photo url.
https:%2F%2Flh3.googleusercontent.com%2F-xPc6TIzQiFA%2FAAAAAAAAAAI%2FAAAAAAAAAeU%2FUIIpz-4G1dQ%2Fphoto.jpg%3Fsz=400
Backend Request from logs(Data changed for privacy reasons).
/_ah/api/registrationAPI/v2/XXXXXX/Rahul%20Purswani/rahulfhp#gmail.com/https:%2F%2Flh3.googleusercontent.com%2F-xPc6TIzQiFA%2FAAAAAAAAAAI%2FAAAAAAAAAeU%2FUIIpz-4G1dQ%2Fphoto.jpg%3Fsz=400/XXX/YYY/VVV, returning NOBODY to imply authentication is in progress.
My Api Class Declaration :
#Api(name="registrationAPI",
version="v2",
namespace=#ApiNamespace(ownerDomain="backend.XXX.XXX.YY",ownerName="backend.XXX.XXX.YY",packagePath=""))
public class PlayerRegistrationEndPoint {
}
And to my surprise this only happens when I test the Api on local development server through real device. If I deploy my api all works fine, I have spent almost the day to narrow it down, If you have any clue about it that will be really appreciable.
Are you accidentally logging the bytes of your pictures using logging.info(), logging.error(), print, etc? Logging bytes to either the logger or standard out can make the dev instances (or even production instance) go into zombie mode.
This has happened to me many times. Check all logs to make sure you aren't trying to log something that isn't a basic variable type.
I was getting this issue since we migrated our code base from Eclipse to Android Studio, during this migration our app-engine sdk version got changed from 1.9.22 to 1.9.18.
Looking back and doing comparative analysis with why it used to work with eclipse, I tried using 1.9.22 app-engine sdk here and issue got resolved, the zombie behavior is no more and even in development environment everything is stable now.
I also checked & removed all the loggers and out statements, though the issue was not fixed with trying that alone.
Thanks for even letting me know that it can also go wrong in future during development environment testing.
Today I added my first application to play google stores. Send your application went smoothly. The application was in store. But as I want to download this application pops up an alert: Authentication is required. Sign in with your Google Account. I might also add that I am logged into your Google account, and checking whether the application runs on several other phones. But unfortunately, the situation repeated itself. Very Please help.
I had the same problem and how to fix it is very simple just go to your apps description and update it with anything I just added one word clicked update and an hour later worked perfectly
I cant comment as I am a new user.
But it seems its an issue with the Google Play, as every one is facing the same issue.
I got 7 apps uploaded yesterday and none of them are working. I have retried to upload again today, and waiting to see the outcome.
Let me know if your apps are working fine now or if any updates on this.
I'm trying to implement Google Play Services following Google's documentation and I'm seeing the following when I try to connect my GameClient:
E/Volley: [4953] il.a: Unexpected response code 401 for https://www.googleapis.com/games/v1/players/me
E/Volley: [4953] il.a: Unexpected response code 401 for https://www.googleapis.com/games/v1/players/me
E/SignInIntentService: There is no linked app associated with this client ID.
I've checked that the SHA1 fingerprint of the certificate signing the APK, the SHA1 of the debug certificate, and the SHA1 given to the Google API do match up and they do. I've checked that the app id is declared in the manifest in the application item (I've taken in my case the 13 digit numerical id, not one that also includes a package). I've also checked that the test accounts I'm using are each listed in the Developer Console and they are; they're each #gmail.com too, and they include my developer address. They've each activated Google Plus.
I've tried this from an API 16 S3 device and an API 17 Google API simulator. The app's package name is correctly declared in the manifest, on the developer console and matches the API package name. The app is listed as a client of the game service, and is shown as 'ready for testing'.
In short I'm struggling to see what my mistake can be and what I've missed. I think I have everything from Google's troubleshooting addressed too. I've looked at the main questions here on StackOverflow, and they're covered. Whatever it is I'm missing is probably staring me full in the face. What can I be missing?
I got stuck on this problem for a long time until I realised that I had two strings in my app called "app_id". One from the Facebook SDK and one from Google. I renamed the Google app_id (and changed the corresponding manifest reference) and all was well.
It is POSSIBLE that you have a similar problem. If you can't see the error then I would try to write out the app_id to syslog to confirm that this is not the cause of the problem.
Incidentally, all my Google app_id s (client ids) are 12 bytes not 13, so perhaps you should start by checking that.
Good Luck !
Even after redoing everything, everything, I still encountered the same problem. However, I subsequently encountered a "This package is already in use" error message on Google API even though I had undeleted all projects and removed all clients before deleting these again.
This turned out to be a blessing: The solution to this was to recreate my debug key before adding the new fingerprint to Google API in another new client id.
And lo... my original problem went away.
I hade the same problem and for me it worked to re-link the app in Game services -> Linked apps -> Link another app.
You didn't explicitly state that the gmail accounts you're testing with are added as Google Plus users in a Google Plus community that is configured as the testing community for your app -OR- that you're using a google group as the testing community and those gmail accounts are part of that community.
If you have done those things, then it might be the issue stated here:
https://code.google.com/p/google-plus-platform/issues/detail?id=554
This answer might sound encouraging to solve your problem, but don't get your hopes up. I've done all that the original poster did, plus the things above, and I'm still stuck.
I've even followed all of the tips stated here:
Google Play Game Services - unable to sign in
And it would appear the depths of the chasm that Google lets you fall into regarding GPS is far deeper than the depths I've plumbed. Joy.
I had the same problem ,I am not sure that the following action is the one that resolved the problem but its worth the try,
Seems that I didnt had the Drive API enabled ,I had it in the enabled apis but i had to actually click the gear icon next to it and then click enable and provide the application name.
Just link the same package as many times as you have Client ID's in your Developer Console "Debug & Release Client ID's"
The thing is if you link your app to the Game Services with the wrong SHA1 fingerprint, Games Services will pick it up and associate it as the main Client ID.
Once you link the same app again to your Game Services, it will automatically pick up the other Client ID's
I had exactly the same problem, and in my case, I fixed it regenerating the API Key from the Google APIs Console. Go to Credentials, select your API key and then click on "Regenerate Key". You don't need to update anything in your code or link more apps, just regenerate and it starts working magically.
Using com.android.vending.licensing you can check if your app is licensed or not. There is a callback, applicationError() that tells you if anything went wrong. Today I encountered error ERROR_NOT_MARKET_MANAGED and I can't figure out how I should deal with it!
Here's what I did:
On Google Play, I added my e-mail address as a test account.
On Google Play, I saved my app (unpublished) with versionCode="10".
On my machine, I changed to versionCode="11".
License check now fails with error code ERROR_NOT_MARKET_MANAGED.
The question is; should I handle this error or is this an unrealistic scenario?
ERROR_NOT_MARKET_MANAGED: the name really tells all about itself, application is not managed by Android Market (now called Google Play). More specifically, the version 11 of your application is not uploaded or published in Google Play.
should I handle this error or is this an unrealistic scenario?
I would consider this as an unrealistic scenario. You don't need to do anything special in code as long as you upload the new app version in Google Play. ERROR_NOT_MARKET_MANAGED is more like a LVL development warning which help developer properly implement license checking code and follow the correct procedure for testing license checking at project build time. check out the comments in LVL sample code:
private class MyLicenseCheckerCallback implements LicenseCheckerCallback {
... ...
public void applicationError(ApplicationErrorCode errorCode) {
if (isFinishing()) {
// Don't update UI if Activity is finishing.
return;
}
// This is a polite way of saying the developer made a mistake
// while setting up or calling the license checker library.
// Please examine the error code and fix the error.
//String result = String.format(getString(R.string.application_error), errorCode);
//String result = "Error";
//handleLicensingResult(result);
}
}
The whole point of integrating LVL into your application is to use Google Play publish your application, and use Google Play client application download and install your application (see Requirements and Limitations section in dev guide). I can't see any point that can cause this applicationError at runtime on end user's device if:
Developer follow the correct procedure to upload (for testing LVL) or publish (for real release) in Google Play.
End user use Google Play client application purchase, download and install the application.
If a end user somehow get a copy of your application (with LVL integrated and uploaded/published in Google Play) from other channel (not purchase via Google Play) and trying to install it on his device (with Google Play client application installed on that device), in this case, LicenseCheckerCallback will go to dontAllow() rather than applicationError(ApplicationErrorCode errorCode).
Dont test your application immediately after you upload it to Google Play.
Wait for some time (15-20 mins or probably longer) before you start testing. Google play takes some time to recognize your app.
29 Jul, I have found that while my app is in Alpha or Beta testing all I ever get is Error 3 or Error_Not_Market_Managed. This is actually a reply from the server. SO that means that I am touching the server and the code is good. Regardless of what is set in the Developer Console as a reply, this is the only reply that I get.
I have actually waited 3 days and there is no change. SO there is no wait time which is acceptable. I even cleared and reset my entire phone. I cleared Google Play cache and all of the other magic tricks. None of them were the reason.
I updated one of my already published apps with my new Google License code and got the exact same response. After I changed the version code and then uploaded it to be published, about 4 hours later, that app functioned normally and the Google license check responded with a good valid code. Now as long as it is fully published, it responds with what ever code I tell it to.
SO the answer is, Google License will not function properly until fully published. If your app is in Alpha or Beta and you are getting Error 3 then you are likely good. Just comment out the License Check method until you are ready to publish.
As for now, 2014 May, I have to publish the testing app (no production APK uploaded) in order to test the uploaded APK and expansion OBB in beta. Otherwise, I always got ERROR_NOT_MARKET_MANAGED when testing APKExpansionPolicy. And 2 hours after publish (the notice on webpage said "up to 24 hours"), I can get expansion file information.
No one except testers can see the published app AFAIK.
It also can happen in older devices. I'm testing my app without the actual version being published and it works fine on my Galaxy S8, but I get this message on my Galaxy S4.
Which means it's also a polite way to say that this can also be a mistake from Google.
I am trying to test in-app-billing. But when I purchase a good digital, I am getting error message that "A server error has occurred. Retry, or cancel and return to previous screen".
Can you suggest me to fix this issue ?
Thanks.
Searching Google for this error message reveals a lot of users in non-US countries experiencing the same issue. Could it be that Google is blocking your phone from purchasing through a non-US carrier? Try someone else's app that also does in-app purchasing and see if you are able to purchase something using their app.
Refer to this topic, a lot of fixes can be found here
http://www.google.com/support/forum/p/Android%20Market/thread?tid=3f8673f746c68442&hl=en
Please look at this thread:
Application Error : This version of the application is not configured for Market Billing
I have the same problems after upload new version of my application. After 1-3 hours problem was gone.
It's look like update problems on Google Play.