I’m getting ‘ArgumentException: Cannot set currency to an empty or null string’ trying to implement codeless IAP.
It looks like I’ve just forgotten to complete a currency somewhere, but I can’t seem to find it. Anyone seen this anywhere?
I’m using Unity 2018.1.0f2 if it matters.
Full error text
ArgumentException: Cannot set currency to an empty or null string
UnityEngine.Analytics.Analytics.Transaction (System.String productId, Decimal amount, System.String currency, System.String receiptPurchaseData, System.String signature, Boolean usingIAPService) (at C:/buildslave/unity/build/Modules/UnityAnalytics/UnityAnalytics.cs:134)
UnityEngine.Purchasing.UnityAnalytics.Transaction (System.String productId, Decimal price, System.String currency, System.String receipt, System.String signature) (at /Users/stevenb/unity-src3/Extensions/UnityPurchasing/Runtime/Purchasing/UnityAnalytics.cs:14)
UnityEngine.Purchasing.AnalyticsReporter.OnPurchaseSucceeded (UnityEngine.Purchasing.Product product) (at /Users/stevenb/unity-src3/Extensions/UnityPurchasing/Runtime/Purchasing/AnalyticsReporter.cs:27)
UnityEngine.Purchasing.StoreListenerProxy.ProcessPurchase (UnityEngine.Purchasing.PurchaseEventArgs e) (at /Users/stevenb/unity-src3/Extensions/UnityPurchasing/Runtime/Purchasing/StoreListenerProxy.cs:33)
UnityEngine.Purchasing.PurchasingManager.ProcessPurchaseIfNew (UnityEngine.Purchasing.Product product) (at /Users/stevenb/unity-src3/Extensions/UnityPurchasing/Runtime/Purchasing/PurchasingManager.cs:211)
UnityEngine.Purchasing.PurchasingManager.OnPurchaseSucceeded (System.String id, System.String receipt, System.String transactionId) (at /Users/stevenb/unity-src3/Extensions/UnityPurchasing/Runtime/Purchasing/PurchasingManager.cs:115)
UnityEngine.Purchasing.JSONStore.OnPurchaseSucceeded (System.String id, System.String receipt, System.String transactionID)
UnityEngine.Purchasing.FakeStore.<>n__0 (System.String id, System.String receipt, System.String transactionID)
UnityEngine.Purchasing.FakeStore+<>c__DisplayClass15_0.b__0 (Boolean allow, PurchaseFailureReason failureReason)
UnityEngine.Purchasing.UIFakeStore+<>c__DisplayClass14_01[UnityEngine.Purchasing.PurchaseFailureReason].<StartUI>b__0 (Boolean result, Int32 codeValue) UnityEngine.Purchasing.UIFakeStore.OkayButtonClicked () UnityEngine.Purchasing.UIFakeStore.<InstantiateDialog>b__16_1 () UnityEngine.Events.InvokableCall.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:166) UnityEngine.Events.UnityEvent.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_0.cs:58) UnityEngine.UI.Button.Press () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:36) UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:45) UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:50) UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction
1 functor) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:261)
UnityEngine.EventSystems.EventSystem:Update()