Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Prime31 Android Plugins Officially Live!

Discussion in 'Android' started by prime31, Jun 6, 2011.

  1. tobephong

    tobephong

    Joined:
    Oct 2, 2009
    Posts:
    15
    Ok, will do. Thanks.

    On more thing. When I use your android showWebView to open a Twitter follow page, it just keep looping the progress loading bar. I end up using something else to open that page, but your showWebView can open everything else.
     
  2. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @tobephong, it could be that Twitter opens socket connection and continues to try to load data. I will put a note in to remove the loading indicator.
     
  3. Deleted User

    Deleted User

    Guest

    One gotcha I've found is that you cannot call hideProgressDialog if you haven't called showProgressDialog first. I have a call to hideProgressDialog at the beginning of each of my scenes but it was crashing with the logcat below in the first scene since I don't have a progress dialog up at that time. Once I removed that specific call, everything worked fine (this, by the way, was not a problem with the equivalent iOS etcetera call, hideActivity, which is why I ran into this now)

    Code (csharp):
    1.  
    2. E/AndroidRuntime(15693): FATAL EXCEPTION: main
    3. E/AndroidRuntime(15693): java.lang.NullPointerException
    4. E/AndroidRuntime(15693):    at com.prime31.EtceteraPlugin$6.run(EtceteraPlugin.java:214)
    5. E/AndroidRuntime(15693):    at android.os.Handler.handleCallback(Handler.java:587)
    6. E/AndroidRuntime(15693):    at android.os.Handler.dispatchMessage(Handler.java:92)
    7. E/AndroidRuntime(15693):    at android.os.Looper.loop(Looper.java:123)
    8. E/AndroidRuntime(15693):    at android.app.ActivityThread.main(ActivityThread.java:4627)
    9. E/AndroidRuntime(15693):    at java.lang.reflect.Method.invokeNative(Native Method)
    10. E/AndroidRuntime(15693):    at java.lang.reflect.Method.invoke(Method.java:521)
    11. E/AndroidRuntime(15693):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
    12. E/AndroidRuntime(15693):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
    13. E/AndroidRuntime(15693):    at dalvik.system.NativeStart.main(Native Method)
    14.  
     
  4. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @techicat, grab the latest package. If I recall there is some extra checks to avoid the inconsistent state and crash.
     
  5. Deleted User

    Deleted User

    Guest

    The download link gives me the 8-10 android etcetera package, which is what I already have (purchased it last night!).
     
  6. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @technicat, interesting. I wonder if it was just in my head that it was modified or if it didn't make the last update. In the meantime just be sure to properly pair your calls to show/hide.
     
  7. Deleted User

    Deleted User

    Guest

    No problem. I can't believe I didn't set it up cleanly in the first place!
     
  8. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @technicat, the updated package is now available.
     
  9. Deleted User

    Deleted User

    Guest

    Thanks, downloading the update now. I already used the etcetera plugin to add photo-to-texture for Fugu Maze (so now it's caught up with the iOS version!)
     
  10. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @Prime31

    Hey Prime! On the email functionality, is it possible to include an image within the email? Preferably something local that can just get included in the email somehow..
     
  11. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @britchard, at this time attachements are not supported directly. You could probably just send an HTML email and included the encoded image though.
     
  12. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31, i assume that would just be done inline to the etceteraAndroid command? Or would the image need to be hosted somewhere and just use a web link?
     
  13. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @britchard, read the info here
     
  14. herbert6

    herbert6

    Joined:
    Apr 4, 2011
    Posts:
    5
    @Prime31

    Hey Prime! Having a big problem here with the Social Networking Plugin (2011-08-26 and older in Unity 3.3 and 3.4), When a flip the physical keypad on the device or change the orientation to Landscape the app crash, if i remove the Social Networking plugin, everything works fine.

    The LogCat return these errors:

    09-01 09:55:25.909: ERROR/InputDispatcher(1313): channel '406ea630 com.blokwise.toonix/com.prime31.FacebookPluginActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8
    09-01 09:55:25.909: ERROR/InputDispatcher(1313): channel '406ea630 com.blokwise.toonix/com.prime31.FacebookPluginActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

    The LogCat to the point at keypad slide and the app end:

    09-01 09:55:25.758: DEBUG/AK8975(1233): sliding keypad status changed: 0 (0: open, 1: close)
    09-01 09:55:25.758: DEBUG/PowerManagerService(1313): bl_tmp:160
    09-01 09:55:25.758: DEBUG/PowerManagerService(1313): New lightsensor value:225, lcdValue:160
    09-01 09:55:25.758: DEBUG/PowerManagerService(1313): lightSensorChangedLocked, buttonValue >= 0, mPowerState = 3
    09-01 09:55:25.758: DEBUG/lights(1313): set_light_keyboard brightness=16777215
    09-01 09:55:25.758: INFO/ActivityManager(1313): Config changed: { scale=1.0 imsi=0/0 loc=en_US touch=3 keys=2/1/1 nav=3/1 orien=1 layout=34 uiMode=17 seq=179}
    09-01 09:55:25.788: DEBUG/PhoneWindow(7447): couldn't save which view has focus because the focused view com.unity3d.player.UnityPlayer$13@40570908 has no id.
    09-01 09:55:25.808: DEBUG/AudioPolicyManagerBase(1229): setOutputDevice() setting same device 0 or null device for output 1
    09-01 09:55:25.869: DEBUG/SensorService(1313): disable: connection.get() = 0x3a7bb0
    09-01 09:55:25.869: DEBUG/SensorService(1313): disable: get sensor name = BMA150 3-axis Accelerometer
    09-01 09:55:25.869: DEBUG/SensorService(1313): pid=7447, uid=10044
    09-01 09:55:25.869: DEBUG/SensorService(1313): Active sensors:
    09-01 09:55:25.869: DEBUG/SensorService(1313): BMA150 3-axis Accelerometer (handle=0x00000000, connections=1)
    09-01 09:55:25.869: DEBUG/SensorService(1313): AK8973 3-axis Magnetic field sensor (handle=0x00000001, connections=1)
    09-01 09:55:25.869: DEBUG/SensorService(1313): CM3602 Light sensor (handle=0x00000004, connections=1)
    09-01 09:55:25.869: DEBUG/SensorService(1313): disable: connection.get() = 0x3a7bb0
    09-01 09:55:25.869: DEBUG/SensorService(1313): disable: get sensor name = AK8973 3-axis Magnetic field sensor
    09-01 09:55:25.869: DEBUG/Sensors(1313): Enable akm: en = 0
    09-01 09:55:25.869: DEBUG/SensorService(1313): pid=7447, uid=10044
    09-01 09:55:25.869: DEBUG/SensorService(1313): Active sensors:
    09-01 09:55:25.869: DEBUG/SensorService(1313): BMA150 3-axis Accelerometer (handle=0x00000000, connections=1)
    09-01 09:55:25.869: DEBUG/SensorService(1313): CM3602 Light sensor (handle=0x00000004, connections=1)
    09-01 09:55:25.879: DEBUG/Unity(7447): onDetachedFromWindow
    09-01 09:55:25.879: INFO/Process(7447): Sending signal. PID: 7447 SIG: 9
    09-01 09:55:25.899: INFO/ActivityManager(1313): Process com.blokwise.toonix (pid 7447) has died.
    09-01 09:55:25.909: ERROR/InputDispatcher(1313): channel '406ea630 com.blokwise.toonix/com.prime31.FacebookPluginActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8
    09-01 09:55:25.909: ERROR/InputDispatcher(1313): channel '406ea630 com.blokwise.toonix/com.prime31.FacebookPluginActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
    09-01 09:55:25.909: INFO/WindowManager(1313): Setting rotation to 1, animFlags=1
    09-01 09:55:25.909: INFO/WindowManager(1313): WIN DEATH: Window{406ea630 com.blokwise.toonix/com.prime31.FacebookPluginActivity paused=false}
    09-01 09:55:25.939: INFO/ActivityManager(1313): Config changed: { scale=1.0 imsi=0/0 loc=en_US touch=3 keys=2/1/1 nav=3/1 orien=2 layout=34 uiMode=17 seq=180}

    By the way i'm also using the Android Etcetera (2011-06-16).

    Any suggestions? One big problem is that the app is alredy at the Android Market (i saw the problem right after publishing). the App is the Toonix for Cartoon Network ... so yeah ... i'm in big problems if i take too long to correct this.
     
  15. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @herbert, check your email. We pushed out an update yesterday that fixes this and a couple other bugs with Facebook.
     
  16. herbert6

    herbert6

    Joined:
    Apr 4, 2011
    Posts:
    5
    @Prime31

    Worked perfectly! Thanks compadre!
     
  17. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31

    I'm back on inApp Billing and am running into an issue. Basically when i run the purchase routine i get to the store, and i see the info related to the purchase but then it will popup a window saying "This version of the application is not configured for Market billing".

    I've signed the app in Unity so i'm not getting any errors there but i'm not sure whats going on. I'm working w/a customer who has handled all the Google setup for Market purchases so i'm a little blind on that end of things. But originally i did send over an unsigned version of the application for upload to the marketplace...

    Anyways, any insight you might have would be greatly beneficial.

    Cheers
     
  18. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @britchard, the error message seems to hint at the application not being properly configured on Market. There isn't much I can do to help you with that.
     
  19. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31 Ok i figured as much. I'm going to submit a new app to them today to upload to the marketplace... i imagine since the app id's are different that might be the issue.
     
  20. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,816
    Hi Prime31,

    I've just purchased the Flurry plugin for Android.
    I've loaded your test scene, and put in my api key. Yet when I click the Start Session GUI Button, the Unity scene just closes and I get returned to the mobile home screen.

    Are there any specific setting requirements for the Android build? I can;t see any in your documentation.

    I also have a logcat dump file, there are one or two errors in there.Link to dump file

    Any advice?

    Thanks
     
  21. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @Meltdown, there shouldn't be anything special needed for the Flurry Plugin. Did you request internet permissions? I am not seeing anything related to the Flurry lib or the plugin code in the logcat log...
     
  22. Meltdown

    Meltdown

    Joined:
    Oct 13, 2010
    Posts:
    5,816
    Hi,

    Thanks for the quick response, I tried to force internet permissions but still the same problem.

    All I'm doing is loading your test scene, putting in my key, and building for Android. (I have Android Pro).
    As soon as I press the Open Flurry Session button it just crashes back to phone desktop.

    Secondly, would this app work if testing from the editor? i.e so if I pressed the Open Session Button, would it log from the Unity Editor window to Flurry? Because if I do that no data/sessions are recorded by Flurry. I assume this plugin is simple port 80 internet?

    Thanks

    EDIT : Maybe this has some more useful information

    I/BootReceiver( 96): Copying /data/tombstones/tombstone_05 to DropBox (SYSTEM_TOMBSTONE)

    D/Sensors ( 96): close_akm, fd=135

    I/WindowManager( 96): WIN DEATH: Window{46530fd0 SurfaceView paused=false}

    I/ActivityManager( 96): Process com.Vostu.FlurryTest2 (pid 1449) has died.

    E/ActivityManager( 96): fail to set top app changed!

    I/WindowManager( 96): WIN DEATH: Window{465e7110 com.Vostu.FlurryTest2/com.unity3d.player.UnityPlayerActivity paused=false}

    D/Zygote ( 66): Process 1449 terminated by signal (11)

    D/NativeCrypto( 96): Freeing OpenSSL session

    D/dalvikvm( 96): GC_FOR_MALLOC freed 25910 objects / 2443064 bytes in 98ms

    D/NativeCrypto( 96): Freeing OpenSSL session

    D/NativeCrypto( 96): Freeing OpenSSL session

    D/SurfaceFlinger( 96): Layer::setBuffers(this=0x4f0780), pid=215, w=480, h=800

    D/SurfaceFlinger( 96): Layer::setBuffers(this=0x4f0780), pid=215, w=480, h=800

    I/UsageStats( 96): Unexpected resume of com.htc.launcher while already resumed in com.Vostu.FlurryTest2

    W/InputManagerService( 96): Got RemoteException sending setActive(false) notification to pid 1449 uid 10075

    D/SurfaceFlinger( 96): Layer::requestBuffer(this=0x4f0780), index=0, pid=215, w=480, h=800 success

    D/AK8973 ( 72): Compass CLOSE

    D/SurfaceFlinger( 96): Layer::requestBuffer(this=0x4f0780), index=1, pid=215, w=480, h=800 success

    V/AlarmManager( 96): Adding Alarm{465afb50 type 2 com.google.android.gsf} Jan 01 02:51:47 am

    I/AudioHardwareQSD( 67): AudioHardware pcm playback is going to standby.


    Also according to your documentation, http://prime31.com/unity/docs/#flurryAndroidDoc

    FlurryAndroid.cs exposes certain methods and events.
    Where do I find this FlurryAndroid.cs file? And how do I call it?
    As your test scene doesn't seem to call any of these events, so this is rather confusing.
     
    Last edited: Sep 9, 2011
  23. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @Prime31

    Well we're still struggling w/the purchase to authenticate correctly. We're still getting the message . Just wanted to confirm (at least from my end) everything is setup correctly...

    in my purchase function i have all my bits setup like this..

    Code (csharp):
    1.  
    2.         if(PlayerPrefs.GetInt("gameversion") == 4)
    3.         {
    4.             //GOOGLE MARKET PLACE VERSION
    5.             Debug.Log("**************Running GOOGLE Marketplace Test Purchase******************");
    6.             string key = I place my public key here (that long string)         
    7.             IABAndroid.init( key );
    8.             IABAndroid.purchaseProduct( "unlock_game_name" );
    9.            
    10.         }
    11.  
    So that portion seems to work fine. As noted i get to the store, see the store data and everything is hunky dory. I was wondering if there's something in the Publishing Settings i'm doing wrong? I do sign the app but i have just been using test stuff for the keystore. Basically I..

    1) Create New KeyStore - user.keystore
    2) Passwords for keystore - test
    3) Key -> Alias -> Create New
    4) Name and Password for the new Alias are tester.
    5) Android Market License - i put in the public key i got from the customer which came from the market place.

    We have uploaded a NEW apk that is completely unsigned (thats what was requested)... and they got everything setup what appears to be correctly on their end. Just wanted to confirm that the above settings were indeed correct and that its nothing to do w/the app itself.
     
  24. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @bpritchard, you need to call init and wait for the billingSupportedEvent to be fired before calling any other methods. That will ensure that the billing service is running, the user can purchase items and that the app is connected to Google's servers.
     
  25. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31

    ok i tweaked the code a bit as follows...

    Code (csharp):
    1.  
    2.     public void purchaseFullGame()
    3.     {
    4.         if(Application.isEditor)
    5.         {
    6.             GameSave.FreemiumEnabled = false;
    7.             PlayerPrefs.SetInt("gamepurchased", 1);        
    8.             checkUpgradeStatus();
    9.         }
    10.         if(PlayerPrefs.GetInt("gameversion") == 4)
    11.         {
    12.             //GOOGLE MARKET PLACE VERSION
    13.             //IABAndroid.purchaseProduct("com.bigfishgames.android.nawpdroidfree");
    14.             Debug.Log("**************Running GOOGLE Marketplace Test Purchase******************");
    15.             string key = "KEY HERE";           
    16.             IABAndroid.init( key );
    17.            
    18.         }
    19.     }
    20.    
    21.     void billingSupportedEvent(bool isSupported)
    22.     {
    23.         IABAndroid.purchaseProduct( "unlock_full_game" );      
    24.     }
    25.  
    26.  
    and after doing that i still get to the marketplace but now i get an error "No Connection". Perhaps its not hitting the successful event?
     
  26. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @britchard, what do you see in the logcat logs? The billing service often dumps good information there.
     
  27. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @Meltdown, can you send me over the apk file (questions (at) prime31.com)? I am still not seeing any of the plugin or Flurry code in that log.
     
  28. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31

    ok yeah so the log shows we're good on the service side of things...

    I/Prime31 (26298): service onServiceConnected
    D/Finsky (25376): [7] MarketBillingService.getPreferredAccount: REMOVED.
    I/Prime31 (26298): billing supported: true
    I/Unity (26298): billingSupportedEvent: True
    I/Unity (26298): UnityEngine.Debug:Internal_Log(Int32, String, Object)
    I/Unity (26298): UnityEngine.Debug:Log(Object)
    I/Unity (26298): IABAndroidEventListener:billingSupportedEvent(Boolean)
    I/Unity (26298): IABAndroidBillingSupportedDelegate:invoke_void__this___bool(Boolean)
    I/Unity (26298): IABAndroidManager:billingSupported(String)

    Then i get these a little later in the log..

    W/Finsky (25376): [1] CheckoutPurchase.onErrorResponse: SERVER: This version of the application is not configured for Market billing.
    E/Finsky (25376): [1] CheckoutPurchase.setError: type=NETWORK_OR_SERVER, code=-1, message=This version of the application is not configured for Market billing.


    so it looks like something is amiss server side (i'd guess)...
     
  29. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    Sure looks like it. Check your Market settings.
     
  30. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31

    ok made some headway.. i went ahead and setup my own product and inapp stuff in the marketplace for testing (Shoulda done this to start).

    so now i get in and am able to see all the info i placed in and can click on ACcept Buy.. at which point it errors with the message "Your order could not be processed. Please try again" and i get this in logcat..

    E/Volley (26839): [11] BasicNetwork.performRequest: Unexpected response code 500 for https://android.clients.google.com/fdfe/completePurchase
    W/Finsky (26839): [1] CheckoutPurchase.onErrorResponse: SERVER: Your order could not be processed. Please try again.
    E/Finsky (26839): [1] CheckoutPurchase.setError: type=NETWORK_OR_SERVER, code=-1, message=Your order could not be processed. Please try again.


    i'm logged into my device with my test account that i have setup in google marketplace... not sure why it would be responding like that.
     
  31. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    That looks much better. Did you factory reset your device before logging in with the test user? Googles docs say it is necessary. The error does have the NETWORK_OR_SERVER constant so it is quite possible their was an error on the server.
     
  32. Deleted User

    Deleted User

    Guest

    I got a crash report on the Android Market of a null pointer exception in EtceteraPlugin.photoAlbumItemChosen() No other info except this stack trace:

    Code (csharp):
    1.  
    2. java.lang.RuntimeException: Unable to resume activity {com.technicat.FuguMaze/com.prime31.EtceteraProxyActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=222, result=-1, data=Intent { dat=content://media/external/images/media/227 }} to activity {com.technicat.FuguMaze/com.prime31.EtceteraProxyActivity}: java.lang.NullPointerException
    3. at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3133)
    4. at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3148)
    5. at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2689)
    6. at android.app.ActivityThread.access$2300(ActivityThread.java:126)
    7. at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2038)
    8. at android.os.Handler.dispatchMessage(Handler.java:99)
    9. at android.os.Looper.loop(Looper.java:123)
    10. at android.app.ActivityThread.main(ActivityThread.java:4632)
    11. at java.lang.reflect.Method.invokeNative(Native Method)
    12. at java.lang.reflect.Method.invoke(Method.java:521)
    13. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:861)
    14. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:619)
    15. at dalvik.system.NativeStart.main(Native Method)
    16. Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=222, result=-1, data=Intent { dat=content://media/external/images/media/227 }} to activity {com.technicat.FuguMaze/com.prime31.EtceteraProxyActivity}: java.lang.NullPointerException
    17. at android.app.ActivityThread.deliverResults(ActivityThread.java:3520)
    18. at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3120)
    19. ... 12 more
    20. Caused by: java.lang.NullPointerException
    21. at com.prime31.EtceteraPlugin.photoAlbumItemChosen(EtceteraPlugin.java:403)
    22. at com.prime31.EtceteraProxyActivity.onActivityResult(EtceteraProxyActivity.java:112)
    23. at android.app.Activity.dispatchActivityResult(Activity.java:3890)
    24. at android.app.ActivityThread.deliverResults(ActivityThread.java:3516)
    25. ... 13 more
    26.  
     
  33. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @technicat, I am guessing you don't know the device make and model. I am tracking down a similar issue that so far only occurs on one HTC model device. And they say Android isn't fragmented...
     
  34. Deleted User

    Deleted User

    Guest

    Yeah, on the Android Market crash report page, the platform is helpfully listed as "OTHER". (you'd think they could at least list the OS version) On the plus side, I no longer have Admob freeze reports since I switched to your plugin!
     
  35. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    Glad to hear AdMob isn't freezing anymore for you! Hopefully we'll be able to track down a fix for this one as well. I am working with someone who happens to have one of the few device make/model combos that seems to have this issue so hopefully it will get tracked down real soon.
     
  36. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31

    Ok so after a full device reset i'm still seeing that same issue (can't complete the purchase). that has to be a server side issue i'd imagine yeah? I have my unpublished APK w/a published version of the in app purchase in the market setup. One thing i also noticed is that is bringing up my CC when i try and purchase.. i woulda thought that since this is a test account it wouldn't require that?

    SO i'm still poking at it... not sure whats going on now but maybe i'll try it again tomorrow in hopes the server maybe fixes itself (if thats even reasonable).

    Cheers!
    Bryan
     
  37. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @bpritchard, you most definitely should not be seeing your actual cc info when using a test user. Something is definitely not right there.
     
  38. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31

    yea its a little strange. i confirmed that the account (gmail email) is in my profile setup and is the same as whats on the device. So odd...
     
  39. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31

    So i added a NEW gmail account and reset the device, let it update to the latest version of the store stuff (cause it crashes if the device is on the old store) and when i go to make the purchase i see the NEW gmail account but its requiring a payment method./

    ??

    I've followed the steps for setting up a test account as noted by your link on the site but is there perhaps something, somewhere i need to turn on to tell it "I just want to test all of this stuff?!?!"

    Cheers
    Bryan
     
  40. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @bpritchard, are you trying to test the fake products or your actual ones? If the latter, be sure to head step one from Google's docs: "Upload your application as a draft application to the publisher site". It also sounds like perhaps you haven't created a proper test account on the Google Checkout web site.
     
  41. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31

    this is a full test. I did upload that app and its NOT published which i assume means its a draft account. I then did setup then inapp purchase stuff and DID publish that.

    And you were correct.. i missed the part that i couldn't use my primary as my test account. so i did create a new gmail account and placed that up there. So i'm able to actually do the purchase now, it is requiring a CC to complete the transaction but it looks like i simply cancel the transaction on the market site (which i've done). So it looks like i'm good.. just so many steps. I thought the iOS setup was hard.. sheesh. :)

    Thanks for ur help!
    bryan
     
  42. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @bpritchard, I complained a lot about the iOS in app purchase until the day I saw the Android in app billing documentation. They have a single demo project that has so many bugs in it that it pains me to think about it AND it starts a service in an undocumented way that cannot be stopped. THEN they make you factory reset your phone just to test! What a mess!

    I salivate thinking about how wonderful iOS in app purchase is now whenever I have to deal with Android's...
     
  43. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31 Amen prime.. amen. :)

    So that seems right to you though? Full testing will require cc yeah? i guess in the end its all good cause it worked (and i can finally relax a bit).
    As always thanks a TON for the help. I'm glad that i get to work on iOS at the same time.. at least when i go back to that i get to relax my brain a bit. haha.. have a good weekend!
     
  44. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @bpritchard, it sounds like you are good to go. Weekend? What does that mean? ;)
     
  45. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31

    Hey on the testpurchase() function, does that return a normal response usable by the purchaseSucceededEvent()? i'm going to use the test purchase for now, its a real pain to go back and forth constantly refunding my money on every purchase attempt.

    Currently i don't appear to be hitting that event (the successful purchase) after i run the test purchase which does work.
     
    Last edited: Sep 12, 2011
  46. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    @bpritchard, test purchases *should* work just like real purchases according to the documentation and they do on our test devices.
     
  47. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31

    Hmm.. no, i'm not getting the purchase successful event within the app. Its succeeding (according to the on screen display) but i never get down into the event.

    I'm using this in my title screen...

    Code (csharp):
    1.  
    2. public void purchaseSucceededEvent( string productId)
    3. {
    4. }
    5.  
    and then i have in my start function

    IABAndroidManager.billingSupportedEvent += billingSupportedEvent;
    IABAndroidManager.purchaseSucceededEvent += purchaseSucceededEvent;

    i have a debug log in the purchaseSucceededEvent but its not ever registering.
     
    Last edited: Sep 12, 2011
  48. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    Your code looks fine. What do you see in the logcat logs?
     
  49. bpritchard

    bpritchard

    Joined:
    Jan 29, 2009
    Posts:
    444
    @prime31

    So here's the response code i'm getting...


    D/Finsky ( 7785): [1] MarketBillingService.sendResponseCode: Sending response RESULT_OK for request 7768753297175083390 to com.bigfishgames.android.nawpdroidfreetest.
    W/GLThread( 7849): onSurfaceCreated
    D/dalvikvm( 7785): GC_CONCURRENT freed 968K, 49% free 3930K/7687K, external 3156K/3304K, paused 2ms+24ms
    W/GLThread( 7849): onSurfaceChanged(1024, 600)
    I/GLThread( 7849): noticing that we want render notification tid=37
    I/Main thread( 7849): onWindowResize waiting for render complete from tid=37
    W/GLThread( 7849): onSurfaceChanged(1024, 600)
    I/GLThread( 7849): sending render notification tid=37
    I/Prime31-BS( 7849): handleCommand() action: com.android.vending.billing.PURCHASE_STATE_CHANGED
    E/Prime31-SEC( 7849): Signature verification failed.
    W/Prime31-SEC( 7849): signature does not match data.
    I/Prime31-BS( 7849): handleCommand() action: com.android.vending.billing.RESPONSE_CODE
    D/Finsky ( 7785): [1] MarketBillingService.sendResponseCode: Sending response RESULT_OK for request 3402252732114986690 to com.android.nawpdroidfreetest.
    D/Finsky ( 7785): [1] PendingNotificationsService.setMarketAlarm: Setting alarm for account=annosofttest@gmail.com, duration=120000
    I/Prime31-BS( 7849): handleCommand() action: com.android.vending.billing.RESPONSE_CODE
    I/Prime31-RS( 7849): responseCodeReceived: RESULT_OK
    I/Prime31 ( 7849): android.test.purchased: RESULT_OK
    I/Prime31 ( 7849): purchase was successfully sent to server

    which to me looks right. I'm seeing the result_ok deal and we're getting a successful purchase, its just like its not running the event.
     
    Last edited: Sep 12, 2011
  50. prime31

    prime31

    Joined:
    Oct 9, 2008
    Posts:
    6,426
    You appear to not have signed the app. You can't test anything without having first signed the app.