Search Unity

NullReferenceException at UnityEngine.Purchasing.StandardPurchasingModule.Configure ()

Discussion in 'Unity IAP' started by reflexing, Jul 19, 2018.

  1. reflexing

    reflexing

    Joined:
    Feb 8, 2017
    Posts:
    10
    Hello! We are using Unity 2017.4.7f1 and Unity IAP 1.20.0. We have our custom PurchasingModule implementing AbstractPurchasingModule for WebGL and Steam. WebGL module works fine, but we have this error with Standalone target for Steam build:

    Code (CSharp):
    1.  
    2. NullReferenceException: Object reference not set to an instance of an object
    3.   at UnityEngine.Purchasing.StandardPurchasingModule.Configure () [0x001f9] in <5c8e2bc39ab0483c8e6057a26f636afa>:0
    4.   at UnityEngine.Purchasing.Extension.AbstractPurchasingModule.Configure (UnityEngine.Purchasing.Extension.IPurchasingBinder binder) [0x00009] in C:\buildslave\unity\build\Extensions\UnityPurchasing\Runtime\Purchasing\Extension\AbstractPurchasingModule.cs:17
    5.   at UnityEngine.Purchasing.PurchasingFactory..ctor (UnityEngine.Purchasing.Extension.IPurchasingModule first, UnityEngine.Purchasing.Extension.IPurchasingModule[] remainingModules) [0x00034] in C:\buildslave\unity\build\Extensions\UnityPurchasing\Runtime\Purchasing\PurchasingFactory.cs:22
    6.  
    This error starts at:
    var builder = ConfigurationBuilder.Instance(new InHousePurchasingModule(), standardPurchasingModule);



    With some previous Unity IAP (can't tell exact version) it worked fine.
     
  2. Etirps

    Etirps

    Joined:
    Apr 16, 2018
    Posts:
    14
    I have the same error with Steam. I'm using Unity 2017.3.0f3 and Unity IAP 1.20.0.


    Code (CSharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2.   at UnityEngine.Purchasing.StandardPurchasingModule.Configure () [0x00000] in <filename unknown>:0
    3.   at UnityEngine.Purchasing.Extension.AbstractPurchasingModule.Configure (IPurchasingBinder binder) [0x00009] in C:\buildslave\unity\build\Extensions\UnityPurchasing\Runtime\Purchasing\Extension\AbstractPurchasingModule.cs:17
    4.   at UnityEngine.Purchasing.PurchasingFactory..ctor (IPurchasingModule first, UnityEngine.Purchasing.Extension.IPurchasingModule[] remainingModules) [0x00034] in C:\buildslave\unity\build\Extensions\UnityPurchasing\Runtime\Purchasing\PurchasingFactory.cs:22
    5.   at UnityEngine.Purchasing.ConfigurationBuilder.Instance (IPurchasingModule first, UnityEngine.Purchasing.Extension.IPurchasingModule[] rest) [0x00003] in C:\buildslave\unity\build\Extensions\UnityPurchasing\Runtime\Purchasing\ConfigurationBuilder.cs:96
    IAPManager.cs line 163

    Code (CSharp):
    1. builder = ConfigurationBuilder.Instance(new SISPurchasingModule(), StandardPurchasingModule.Instance());
     
  3. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Can you provide steps to reproduce when building for Steam? Is this Windows exe standalone?
     
  4. Etirps

    Etirps

    Joined:
    Apr 16, 2018
    Posts:
    14
    In my case yes, this is Windows exe standalone. Your Unity IAP 1.18.0 uploaded version help me. Now it works like a charm!
     
  5. reflexing

    reflexing

    Joined:
    Feb 8, 2017
    Posts:
    10
    Yes, like in mr-euksinus's case, it happens on Standalone Windows target.
     
  6. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    @reflexing What store are you targeting? Can you provide steps to reproduce (building for Steam)?
     
  7. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,268
    There must have been a change in either Unity IAP 1.19 or 1.20, since 1.18 works correctly when initializing two modules at the same time.

    Unity IAP 1.18, all platforms. Unity 1.20, all platforms except Standalone:
    Code (csharp):
    1. var builder = ConfigurationBuilder.Instance(new InHousePurchasingModule(), standardPurchasingModule);
    Unity IAP 1.20, Standalone:
    Code (csharp):
    1. var builder = ConfigurationBuilder.Instance(new InHousePurchasingModule());
    Basically having two modules in Unity IAP 1.20 on Standalone is broken. Going to submit a bug report for this later on, because several users of our Simple IAP System asset ran into this already.
     
  8. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    @Baroni Can you open a new forum thread for this new issue?
     
  9. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,268
    It is the same issue. The NRE is coming from that. Only having one module is not causing the NRE.
     
  10. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    @Baroni Understood, thanks for confirming
     
  11. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    I have not been able to reproduce. However, my test may not be valid because I'm simply declaring StandardPurchasingModule twice, I'm not testing with a real implementation. Can you confirm the behavior when you do the same?

    var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance(), StandardPurchasingModule.Instance());
     
  12. Vanabee

    Vanabee

    Joined:
    Oct 28, 2018
    Posts:
    5
    One year later.. Was it solved? Have same issue with subscription. Using latest Unity personal. Google play app published subscription setup. In editor
    ProcessPurchase: PASS. Product: 'single_site'
    UnityEngine.Debug:Log(Object)
    When running on fevice or standalone development build NullExeption error Object reference not set to an instance... UnitiEngine.Purchasing.StandardPurchasingModule.Configure()
     
  13. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    @Vanabee please show the code you are using and the logs from the device when the issue occurs. What version of IAP are you using?