Search Unity

Amazon IAP Initialize not called.

Discussion in 'Unity IAP' started by bz_apps, Sep 2, 2021.

  1. bz_apps

    bz_apps

    Joined:
    Aug 19, 2014
    Posts:
    70
    Hi, I'm building for Amazon and im not getting "OnInitialized" or "OnInitializedFailed" called. Is there anything special i need to do? I need to get a reply from the Store before I can proceed in in my app so it gets stuck.

    This is all I get in the log:

    Code (CSharp):
    1. 09/02 12:51:50.547 14293 14335 Debug d In App Purchasing SDK - Sandbox Mode: PurchasingListener registered: com.unity.purchasing.amazon.AmazonPurchasing@11074b1b
    2. 09/02 12:51:50.547 14293 14335 Debug d In App Purchasing SDK - Sandbox Mode: PurchasingListener Context: com.unity3d.player.UnityPlayerActivity@11367279
    3. 09/02 12:51:50.815 14293 14335 Debug Unity Purchasing Amazon RetrieveProducts 2
    4. 09/02 12:51:50.817 14293 14335 Debug c In App Purchasing SDK - Sandbox Mode: sendGetUserDataRequest
    5.  
     
  2. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Which Amazon device are you testing on? What version of Unity IAP, can you share your purchasing code?
     
  3. bz_apps

    bz_apps

    Joined:
    Aug 19, 2014
    Posts:
    70
    a couple of kindle's from 2012 to 2014.

    code:
    Code (CSharp):
    1. using System;
    2. using System.Collections;
    3. using System.Collections.Generic;
    4. using UnityEngine;
    5. using UnityEngine.Purchasing;
    6.  
    7. namespace Bluezoo
    8. {
    9.  
    10.     public class IAPPurchaseManager : Singleton<IAPPurchaseManager>, IStoreListener
    11.     {
    12.         protected IAPPurchaseManager() { }
    13.  
    14.         public event Action<bool> Event_Initialized;
    15.         public event Action<bool, PurchaseEventArgs> Event_Purchase;
    16.         public event Action<bool, SubscriptionInfo> Event_Subscribed;
    17.  
    18.         private static IStoreController storeController;          // The Unity Purchasing system.
    19.         private static IExtensionProvider storeExtensionProvider; // The store-specific Purchasing subsystems.
    20.  
    21.         // Product identifiers for all products capable of being purchased:
    22.         // "convenience" general identifiers for use with Purchasing, and their store-specific identifier
    23.         // counterparts for use with and outside of Unity Purchasing. Define store-specific identifiers
    24.         // also on each platform's publisher dashboard (iTunes Connect, Google Play Developer Console, etc.)
    25.  
    26.         // General product identifiers for the consumable, non-consumable, and subscription products.
    27.         // Use these handles in the code to reference which product to purchase. Also use these values
    28.         // when defining the Product Identifiers on the store. Except, for illustration purposes, the
    29.         // kProductIDSubscription - it has custom Apple and Google identifiers. We declare their store-
    30.         // specific mapping to Unity Purchasing's AddProduct, below.
    31.         // public static string PRODUCT_ID_CONSUMABLE = "consumable";
    32.         // public static string PRODUCT_ID_NON_CONSUMABLE = "nonconsumable";
    33.         // public static string PRODUCT_ID_SUBSCRIPTION = "subscription";
    34.  
    35.         // // Apple App Store-specific product identifier for the subscription product.
    36.         // public string subscriptionIDApple = "com.unity3d.subscription.new";
    37.  
    38.         // // Google Play Store-specific product identifier subscription product.
    39.         // public string subscriptionIDGoogle = "com.unity3d.subscription.original";
    40.         // // Amazon Kindle Store-specific product identifier subscription product.
    41.         // public string subscriptionIDAmazon = "com.unity3d.subscription.original";
    42.  
    43.  
    44.         public void Init(Dictionary<string, ProductType> setupProducts)
    45.         {
    46.             Debug.Log($"[IAPPurchaseManager] Init.");
    47.  
    48.             // If we have already connected to Purchasing ...
    49.             if (IsInitialized())
    50.             {
    51.                 // ... we are done here.
    52.                 return;
    53.             }
    54.  
    55.             StandardPurchasingModule storeModule;
    56. #if KINDLE
    57.             storeModule = StandardPurchasingModule.Instance(AppStore.AmazonAppStore);
    58. #else
    59.             storeModule = StandardPurchasingModule.Instance();
    60. #endif
    61.  
    62.             // Create a builder, first passing in a suite of Unity provided stores.
    63.             var builder = ConfigurationBuilder.Instance(storeModule);
    64.  
    65.             // builder.AddProduct(PRODUCT_ID_CONSUMABLE, ProductType.Consumable);
    66.             // builder.AddProduct(PRODUCT_ID_NON_CONSUMABLE, ProductType.NonConsumable);
    67.             // builder.AddProduct(PRODUCT_ID_SUBSCRIPTION, ProductType.Subscription, new IDs(){
    68.             //                         { subscriptionIDApple, AppleAppStore.Name },
    69.             //                         { subscriptionIDGoogle, GooglePlay.Name },
    70.             //                     });
    71.             foreach (var product in setupProducts)
    72.             {
    73.                 builder.AddProduct(product.Key, product.Value);
    74.             }
    75.  
    76.             // Kick off the remainder of the set-up with an asynchrounous call, passing the configuration
    77.             // and this class' instance. Expect a response either in OnInitialized or OnInitializeFailed.
    78.             UnityPurchasing.Initialize(this, builder);
    79.         }
    80.  
    81.         public void BuyConsumable(string productId)
    82.         {
    83.             var valid = BuyProductID(productId);
    84.         }
    85.  
    86.         public void BuyNonConsumable(string productId)
    87.         {
    88.             var valid = BuyProductID(productId);
    89.         }
    90.  
    91.         public void BuySubscription(string subscriptionId)
    92.         {
    93.             var valid = BuyProductID(subscriptionId);
    94.  
    95.             // If not valid, dispatch false.
    96.             if (!valid)
    97.             {
    98.                 Event_Subscribed?.Invoke(false, null);
    99.             }
    100.         }
    101.  
    102.  
    103.         // Restore purchases previously made by this customer. Some platforms automatically restore purchases, like Google.
    104.         // Apple currently requires explicit purchase restoration for IAP, conditionally displaying a password prompt.
    105.         public void RestorePurchases()
    106.         {
    107.             Debug.Log("[IAPPurchaser] Restore");
    108.  
    109.             // If Purchasing has not yet been set up ...
    110.             if (!IsInitialized())
    111.             {
    112.                 // ... report the situation and stop restoring. Consider either waiting longer, or retrying initialization.
    113.                 Debug.Log("RestorePurchases FAIL. Not initialized.");
    114.                 return;
    115.             }
    116.  
    117.             // If we are running on an Apple device ...
    118.             if (Application.platform == RuntimePlatform.IPhonePlayer ||
    119.                 Application.platform == RuntimePlatform.OSXPlayer)
    120.             {
    121.                 // ... begin restoring purchases
    122.                 Debug.Log("RestorePurchases started ...");
    123.  
    124.                 // Fetch the Apple store-specific subsystem.
    125.                 var apple = storeExtensionProvider.GetExtension<IAppleExtensions>();
    126.                 // Begin the asynchronous process of restoring purchases. Expect a confirmation response in
    127.                 // the Action<bool> below, and ProcessPurchase if there are previously purchased products to restore.
    128.                 apple.RestoreTransactions((result) =>
    129.                 {
    130.                     // The first phase of restoration. If no more responses are received on ProcessPurchase then
    131.                     // no purchases are available to be restored.
    132.                     Debug.Log("RestorePurchases continuing: " + result + ". If no further messages, no purchases available to restore.");
    133.                 });
    134.             }
    135.             // Otherwise ...
    136.             else
    137.             {
    138.                 // We are not running on an Apple device. No work is necessary to restore purchases.
    139.                 Debug.Log("RestorePurchases FAIL. Not supported on this platform. Current = " + Application.platform);
    140.             }
    141.         }
    142.  
    143.         public void CheckForExistingSubscriptions()
    144.         {
    145.             // var appleExtensions = storeExtensionProvider.GetExtension<IAppleExtensions>();
    146.             // Dictionary<string, string> dict = appleExtensions.GetIntroductoryPriceDictionary();
    147.             var foundSubscription = false;
    148.  
    149.             foreach (Product product in storeController.products.all)
    150.             {
    151.                 // If the recipt is null, they have bought it!
    152.                 if (product.receipt != null && product.definition.type == ProductType.Subscription)
    153.                 {
    154.                     foundSubscription = true;
    155.  
    156.                     // Process the subscription, this will dispatch any events.
    157.                     ProcessSubscription(product);
    158.                 }
    159.             }
    160.  
    161.             // If nothing is found, dispatch false.
    162.             if (!foundSubscription)
    163.             {
    164.                 Event_Subscribed?.Invoke(false, null);
    165.             }
    166.         }
    167.  
    168.         public bool GetSubscriptionPrice(string productId, out string price, out string countryCode)
    169.         {
    170.             var meta = storeController?.products?.WithID(productId)?.metadata;
    171.             if (meta != null)
    172.             {
    173.                 // Debug.Log("a=" + meta.localizedPrice.ToString());
    174.                 // Debug.Log("b=" + meta.localizedPriceString.ToString());
    175.                 // Debug.Log("c=" + meta.isoCurrencyCode.ToString());
    176.                 price = meta.localizedPriceString.ToString();
    177.                 countryCode = meta.isoCurrencyCode;
    178.                 return true;
    179.             }
    180.  
    181.             // If nothing is found, return defaults.
    182.             Debug.Log("[IAPPurchaseManager] Failed to find the price of the subsciption:" + productId);
    183.             price = "£££";
    184.             countryCode = "GBP";
    185.             return false;
    186.         }
    187.  
    188.         public void ProcessSubscription(Product product, bool newPurchase = false)
    189.         {
    190.             // if (newPurchase) {
    191.             //     if (!CheckIfProductIsAvailableForSubscriptionManager(product.receipt)) {
    192.             //         Debug.Log("Product is not valid for SubscriptionManager");
    193.             //         Event_Subscribed?.Invoke(false, null);
    194.             //         return;
    195.             //     }
    196.             // }
    197.  
    198.             // string introductoryPrice_json = (introductory_info_dict == null || !introductory_info_dict.ContainsKey(item.definition.storeSpecificId)) ? null : introductory_info_dict[item.definition.storeSpecificId];
    199.             var sm = new SubscriptionManager(product, null);
    200.             SubscriptionInfo info = sm.getSubscriptionInfo();
    201.  
    202.             Debug.Log("----------- SUBSCRIPTION INFO ---------------");
    203.             Debug.Log("product id is: " + info.getProductId());
    204.             Debug.Log("purchase date is: " + info.getPurchaseDate());
    205.             Debug.Log("subscription next billing date is: " + info.getExpireDate());
    206.             Debug.Log("is subscribed? " + info.isSubscribed().ToString());
    207.             Debug.Log("is expired? " + info.isExpired().ToString());
    208.             Debug.Log("is cancelled? " + info.isCancelled());
    209.             Debug.Log("product is in free trial peroid? " + info.isFreeTrial());
    210.             Debug.Log("product is auto renewing? " + info.isAutoRenewing());
    211.             Debug.Log("subscription remaining valid time until next billing date is: " + info.getRemainingTime());
    212.             Debug.Log("is this product in introductory price period? " + info.isIntroductoryPricePeriod());
    213.             Debug.Log("the product introductory localized price is: " + info.getIntroductoryPrice());
    214.             Debug.Log("the product introductory price period is: " + info.getIntroductoryPricePeriod());
    215.             Debug.Log("the number of product introductory price period cycles is: " + info.getIntroductoryPricePeriodCycles());
    216.             Debug.Log("-----------------------------------------------");
    217.  
    218.             var isSubscribed = info.isSubscribed() == Result.True;
    219.             Event_Subscribed?.Invoke(isSubscribed, info);
    220.         }
    221.  
    222.      
    223.  
    224.         private bool IsInitialized()
    225.         {
    226.             // Only say we are initialized if both the Purchasing references are set.
    227.             return storeController != null && storeExtensionProvider != null;
    228.         }
    229.  
    230.         private bool BuyProductID(string productId)
    231.         {
    232.             // If Purchasing has been initialized ...
    233.             if (IsInitialized())
    234.             {
    235.                 // ... look up the Product reference with the general product identifier and the Purchasing
    236.                 // system's products collection.
    237.                 Product product = storeController.products.WithID(productId);
    238.  
    239.                 // If the look up found a product for this device's store and that product is ready to be sold ...
    240.                 if (product != null && product.availableToPurchase)
    241.                 {
    242.                     Debug.Log(string.Format("Purchasing product asychronously: '{0}'", product.definition.id));
    243.                     // ... buy the product. Expect a response either through ProcessPurchase or OnPurchaseFailed
    244.                     // asynchronously.
    245.                     storeController.InitiatePurchase(product);
    246.                     return true;
    247.                 }
    248.                 // Otherwise ...
    249.                 else
    250.                 {
    251.                     // ... report the product look-up failure situation
    252.                     Debug.Log("BuyProductID: FAIL. Not purchasing product, either is not found or is not available for purchase");
    253.                     Event_Subscribed?.Invoke(false, null);
    254.                     return false;
    255.                 }
    256.             }
    257.             // Otherwise ...
    258.             else
    259.             {
    260.                 // ... report the fact Purchasing has not succeeded initializing yet. Consider waiting longer or
    261.                 // retrying initiailization.
    262.                 Debug.Log("BuyProductID FAIL. Not initialized.");
    263.                 Event_Subscribed?.Invoke(false, null);
    264.                 return false;
    265.             }
    266.         }
    267.  
    268.  
    269.         //
    270.         // --- IStoreListener
    271.         //
    272.         public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
    273.         {
    274.             Debug.Log($"[IAPPurchaseManager] Initialised. TRUE.");
    275.  
    276.             // Purchasing has succeeded initializing. Collect our Purchasing references.
    277.  
    278.             // Overall Purchasing system, configured with products for this application.
    279.             storeController = controller;
    280.  
    281.             // Store specific subsystem, for accessing device-specific store features.
    282.             storeExtensionProvider = extensions;
    283.  
    284.             Event_Initialized?.Invoke(true);
    285.         }
    286.  
    287.         public void OnInitializeFailed(InitializationFailureReason error)
    288.         {
    289.             Debug.Log($"[IAPPurchaseManager] Initialised. FALSE. InitializationFailureReason:{error}");
    290.  
    291.             // Purchasing set-up has not succeeded. Check error for reason. Consider sharing this reason with the user.
    292.             Event_Initialized?.Invoke(false);
    293.         }
    294.  
    295.         public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
    296.         {
    297.             Debug.Log("[IAPPurchaseManager] ProcessPurchase SUCCESSS");
    298.             // if (args.purchasedProduct.definition.id == )
    299.             // CheckForExistingSubscriptions
    300.             Event_Purchase?.Invoke(true, args);
    301.             return PurchaseProcessingResult.Complete;
    302.         }
    303.  
    304.         public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
    305.         {
    306.             // A product purchase attempt did not succeed. Check failureReason for more detail. Consider sharing
    307.             // this reason with the user to guide their troubleshooting actions.
    308.             Debug.Log("[IAPPurchaseManager] ProcessPurchase FAILED");
    309.             Debug.Log("[IAPPurchaseManager] " + string.Format("OnPurchaseFailed: FAILED. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
    310.             Event_Purchase?.Invoke(false, null);
    311.         }
    312.     }
    313. }
     
  4. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    I might suggest to add more Debug.Log statements, in particular to see if your KINDLE define is identified. Please share your device logs. Does this code work on Google Play? You are using Invoke that I haven't tested with, please compare to the Sample IAP Project v2 IAPManager.cs and get that working without any changes first. I tested Amazon just a few weeks ago without issue with this code https://forum.unity.com/threads/sample-iap-project.529555/#post-6950270
     
  5. BBO_Lagoon

    BBO_Lagoon

    Joined:
    Mar 2, 2017
    Posts:
    200
    Hi,
    I just tried to make a build for the Amazon App Store and I got the same problem.

    Code (CSharp):
    1. Debug d In App Purchasing SDK - Sandbox Mode: PurchasingListener registered: com.unity.purchasing.amazon.AmazonPurchasing@c63f3c3
    2. Debug d In App Purchasing SDK - Sandbox Mode: PurchasingListener Context: com.lagoonsoft.pb@6a66440
    3. Debug Unity Purchasing Amazon RetrieveProducts 24
    4. Debug c In App Purchasing SDK - Sandbox Mode: sendGetUserDataRequest
    5.  
    Nothing after that, no fail, no success ...

    I use the last IAP package 4.0.3.
    The same code works for Google Play Store and UDP builds.
     
    bz_apps likes this.
  6. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    What Amazon device are you testing on? I've tested on Amazon recently on a Fire tablet without issue.
     
  7. BBO_Lagoon

    BBO_Lagoon

    Joined:
    Mar 2, 2017
    Posts:
    200
    I test on a Samsung galaxy S10 android device with Amazon App Store and Amazon App Tester installed. Amazon App Tester shows me all my IAP items.
     
  8. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    You might want to test on an actual Amazon device.
     
  9. BBO_Lagoon

    BBO_Lagoon

    Joined:
    Mar 2, 2017
    Posts:
    200
    For testing:

    Is it mandatory to have an Amazon device to test Amazon App Store payment before deployment ?
    On the doc it's written:
    Device setup
    1. For Android devices, download and install the Amazon Appstore.
    So it might work on any Android devices no ?
    Anyway, if it don't work on a non Amazon device, don't the OnInitializeFailed function might be called ?


    Once deployed on the store:

    Does Unity IAP for Amazon will work for games installed on any Android device from the Amazon App Store ? Or only on Amazon devices ?
    What about the upcoming of Amazon App Store on Windows 11 will it work for Unity games with Unity IAP plugin ?
     
  10. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    It's my understanding that it only works on Amazon devices. For testing here, I picked up a Fire tablet for around $50 USD We have not looked into Amazon on Windows 11
     
  11. bz_apps

    bz_apps

    Joined:
    Aug 19, 2014
    Posts:
    70
    Its still not working for me on my kindle device... Im uniting IAP 4.1.1.
     
  12. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Can you define "not working"? Is initialization failing, or a purchase? Please share the device logs, they will show your Debug.Log statements. It's working for me here. You need to publish to LAT testing for it to work, like the other stores require https://developer.amazon.com/docs/app-testing/live-app-testing-understanding.html and https://docs.unity3d.com/Manual/UnityIAPAmazonConfiguration.html and https://forum.unity.com/threads/how-to-capturing-device-logs-on-android.528680/
     
  13. bz_apps

    bz_apps

    Joined:
    Aug 19, 2014
    Posts:
    70
    @JeffDUnity3D I have switched to a fully coded IAP Setup.

    It is still not working on my Amazon Kindle device. I have tested locally and via Amazon's Live App Testing.

    Using Purchasing 4.1.2 and testing on a Kindle Fire table.

    Amazon is also rejecting our app because it will not load... When the app first loads, we are checking for the IAP before progressing to the 'main-menu', because we are not getting a response from the IAP initialisation, the loading scene does not progress which is what they are seeing also.


    Here is the device logs:
    Code (CSharp):
    1. 2022-01-21 10:57:16.570 319-319/? I/WifiHAL: enter wifi_get_link_stats id[0] iface[0x0xef608138]
    2. 2022-01-21 10:57:16.570 319-319/? I/WifiHAL: Creating message to get link statistics; iface = 9
    3. 2022-01-21 10:57:16.570 319-319/? D/WifiHAL: WifiRequest::create vendor command to iface 9, vendor_id=0x1a11, subcmd=0x1200, res=0
    4. 2022-01-21 10:57:16.583 319-319/? I/WifiHAL: In GetLinkStatsCommand::handleResponse
    5. 2022-01-21 10:57:16.584 319-319/? D/WifiHAL: on_time: = 12458204
    6. 2022-01-21 10:57:16.584 319-319/? D/WifiHAL: tx_time: = 7440
    7. 2022-01-21 10:57:16.584 319-319/? D/WifiHAL: rx_time: = 297717
    8. 2022-01-21 10:57:16.584 319-319/? D/WifiHAL: on_time_scan: = 47544
    9. 2022-01-21 10:57:16.584 319-319/? D/WifiHAL: beacon_rx: = 26706
    10. 2022-01-21 10:57:16.584 319-319/? D/WifiHAL: rssi_mgmt: = -38
    11. 2022-01-21 10:57:16.584 319-319/? D/WifiHAL: received mpdu: = 2300
    12. 2022-01-21 10:57:16.584 319-319/? D/WifiHAL: transmite mpdu: = 25647
    13. 2022-01-21 10:57:16.584 319-319/? D/WifiHAL: lost mpdu: = 5458
    14. 2022-01-21 10:57:16.584 319-319/? D/WifiHAL: retry mpdu: = 258
    15. 2022-01-21 10:57:16.584 319-319/? D/WifiHAL: mId[0] mIface[0x0xef608138]
    16. 2022-01-21 10:57:17.230 327-346/? I/vendor.mediatek.hardware.power@2.0-impl: powerHintAsync hint:2, data:0
    17. 2022-01-21 10:57:17.231 327-345/? I/libPowerHal: 2: set gpu level: 0
    18. 2022-01-21 10:57:17.231 327-345/? I/libPowerHal: 2: cpu_ctrl set freq: 2001000 -1
    19. 2022-01-21 10:57:17.231 327-346/? I/vendor.mediatek.hardware.power@2.0-impl: powerHintAsync hint:2, data:0
    20.  
    21.     --------- beginning of system
    22. 2022-01-21 10:57:17.344 566-1584/? I/ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.custom.project cmp=com.custom.project/com.unity3d.player.UnityPlayerActivity} from uid 10134
    23. 2022-01-21 10:57:17.345 327-346/? I/vendor.mediatek.hardware.power@2.0-impl: powerHintAsync hint:2, data:200
    24. 2022-01-21 10:57:17.357 327-346/? I/vendor.mediatek.hardware.power@2.0-impl: powerHintAsync hint:8, data:1
    25. 2022-01-21 10:57:17.379 11665-11665/? I/AmazonAppstore.PlatterLockerPolicyProvider: Setting listen to Uri change in locker to false
    26. 2022-01-21 10:57:17.383 11665-11665/? I/AmazonAppstore.PlatterLockerPolicyProvider: Setting listen to Uri change in locker to false
    27. 2022-01-21 10:57:17.401 566-3321/? I/WifiService: acquireWifiLock uid=10134 lockMode=1
    28. 2022-01-21 10:57:17.415 16916-16916/? W/main: type=1400 audit(0.0:60914): avc: denied { dac_read_search } for capability=2 scontext=u:r:zygote:s0 tcontext=u:r:zygote:s0 tclass=capability permissive=0
    29. 2022-01-21 10:57:17.423 566-586/? I/ActivityManager: Start proc 16916:com.custom.project/u0a193 for activity com.custom.project/com.unity3d.player.UnityPlayerActivity
    30. 2022-01-21 10:57:17.415 16916-16916/? I/chatty: uid=10193(com.custom.project) customproject identical 2 lines
    31. 2022-01-21 10:57:17.415 16916-16916/? W/main: type=1400 audit(0.0:60917): avc: denied { dac_read_search } for capability=2 scontext=u:r:zygote:s0 tcontext=u:r:zygote:s0 tclass=capability permissive=0
    32. 2022-01-21 10:57:17.428 11665-16913/? I/AmazonAppstore.LockerSyncDecisionDelegate: handling intent action 'com.amazon.mas.client.application.events.APPSTORE_FTUE'
    33. 2022-01-21 10:57:17.428 11665-16913/? I/AmazonAppstore.LockerSyncDecisionDelegate: Appstore FTUE previously detected. Ignoring.
    34. 2022-01-21 10:57:17.436 566-3321/? I/WifiService: releaseWifiLock uid=10134
    35. 2022-01-21 10:57:17.441 16916-16916/? E/customproject: Not starting debugger since process cannot load the jdwp agent.
    36. 2022-01-21 10:57:17.443 11665-16915/? I/AmazonAppstore.AccountSummaryProviderImpl: isAccountPrepared(null) - using H:fbc30902999bea2dd0d47df6cc304759
    37. 2022-01-21 10:57:17.443 11665-16915/? I/AmazonAppstore.AccountSummaryProviderImpl: isAccountPrepared() - using H:fbc30902999bea2dd0d47df6cc304759, returning true
    38. 2022-01-21 10:57:17.470 566-3321/? I/AlexaModeSwitchManagerImpl: Inside getMode
    39. 2022-01-21 10:57:17.484 566-1000/? I/PackageRecency: Queuing notification(s) to package for ActivityInfo{98cf517 com.unity3d.player.UnityPlayerActivity}
    40. 2022-01-21 10:57:17.492 566-699/? W/AmazonProfileService: Active profile for the package xxx not present for customer Id xxx
    41. 2022-01-21 10:57:17.497 11665-16930/? I/AmazonAppstore.CmsPublisherService: Ignoring action: com.amazon.mas.client.locker.ENTITLEMENT_UPDATE
    42. 2022-01-21 10:57:17.507 11665-16930/? I/AmazonAppstore.CmsPublisherService: Ignoring action: com.amazon.mas.client.locker.ENTITLEMENT_APP_OPEN
    43. 2022-01-21 10:57:17.515 566-646/? D/AmazonWindowMetrics: On window event - Package com.custom.project, isDreaming false, state 1, alexaMode 0
    44. 2022-01-21 10:57:17.536 321-321/? D/AudioALSAHardware: +setParameters(): continuous_audio_mode=0
    45. 2022-01-21 10:57:17.536 321-321/? W/AudioALSAHardware: setParameters(), still have param.size() = 1, remain param = "continuous_audio_mode=0"
    46. 2022-01-21 10:57:17.536 321-321/? D/AudioALSAHardware: -setParameters(): continuous_audio_mode=0
    47. 2022-01-21 10:57:17.538 16916-16916/? I/FirebaseApp: Device unlocked: initializing all Firebase APIs for app [DEFAULT]
    48. 2022-01-21 10:57:17.539 566-592/? E/AmazonProfileService: Active profile has not been set
    49. 2022-01-21 10:57:17.545 327-345/? I/libPowerHal: 2: set gpu level: 2
    50. 2022-01-21 10:57:17.545 327-345/? I/libPowerHal: 2: set gpu level max: 0
    51. 2022-01-21 10:57:17.552 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    52. 2022-01-21 10:57:17.558 1524-2453/? I/MinervaServiceManager: com.amazon.minerva.service.IonMetricEvent@ffe5d23
    53. 2022-01-21 10:57:17.559 1524-2453/? D/UserControlVerifier: Current metric collection switch is: 1
    54. 2022-01-21 10:57:17.559 1524-2453/? I/BatchCreatorManager: addMetricEvent
    55. 2022-01-21 10:57:17.560 1524-2453/? I/BatchCreatorManager: storagePriority: 8
    56. 2022-01-21 10:57:17.560 1524-2453/? I/BatchCreatorManager: addMetricEvent, runningBatch size:8
    57. 2022-01-21 10:57:17.568 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    58. 2022-01-21 10:57:17.575 16916-16933/? E/ActivityThread: Failed to find provider info for com.google.android.gms.chimera
    59. 2022-01-21 10:57:17.576 16916-16933/? W/DynamiteModule: Failed to retrieve remote module version.
    60. 2022-01-21 10:57:17.576 16916-16933/? E/DynamiteModule: Failed to load IDynamiteLoader from GmsCore: Application package com.google.android.gms not found
    61. 2022-01-21 10:57:17.576 16916-16933/? I/DynamiteModule: Considering local module com.google.android.gms.measurement.dynamite:20 and remote module com.google.android.gms.measurement.dynamite:0
    62. 2022-01-21 10:57:17.576 16916-16933/? I/DynamiteModule: Selected local version of com.google.android.gms.measurement.dynamite
    63. 2022-01-21 10:57:17.578 16916-16933/? E/DynamiteModule: Failed to load IDynamiteLoader from GmsCore: Application package com.google.android.gms not found
    64. 2022-01-21 10:57:17.585 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    65. 2022-01-21 10:57:17.599 16916-16916/? I/FirebaseCrashlytics: Initializing Crashlytics 17.2.2
    66. 2022-01-21 10:57:17.602 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    67. 2022-01-21 10:57:17.611 16916-16916/? I/FirebaseInitProvider: FirebaseApp initialization successful
    68. 2022-01-21 10:57:17.618 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    69. 2022-01-21 10:57:17.633 337-369/? E/BufferQueueProducer: [com.amazon.venezia/com.amazon.venezia.library.LibraryActivity#0] disconnect: not connected (req=1)
    70. 2022-01-21 10:57:17.633 11665-11701/? W/libEGL: EGLNativeWindowType 0xc78fd008 disconnect failed
    71. 2022-01-21 10:57:17.633 11665-11701/? D/OpenGLRenderer: endAllActiveAnimators on 0xbfba6000 (RippleDrawable) with handle 0xc61fdc80
    72. 2022-01-21 10:57:17.634 11665-11701/? D/OpenGLRenderer: endAllActiveAnimators on 0xc1f12c80 (RippleDrawable) with handle 0xc61fdc70
    73. 2022-01-21 10:57:17.634 309-434/? W/hwcomposer: [OVL] (0) No overlay input queue(0)
    74. 2022-01-21 10:57:17.634 309-434/? I/hwcomposer: [DBQ] (q2:0xf6dafc80) Buffer queue is created with size(3)
    75. 2022-01-21 10:57:17.635 309-434/? I/hwcomposer: [DBQ] (q2:0xf6dafc80) setConsumerListener
    76. 2022-01-21 10:57:17.635 309-434/? I/hwcomposer: [DBQ] (q2:0xf6dafc80) Reallocate Slot(0), pool(0 -> 0) size(0 -> 4096000)
    77. 2022-01-21 10:57:17.635 309-434/? E/hwcomposer: protectedCloseImpl simply return that fd<0
    78. 2022-01-21 10:57:17.636 16916-16940/? I/FA: App measurement initialized, version: 33025
    79. 2022-01-21 10:57:17.637 16916-16940/? I/FA: To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
    80. 2022-01-21 10:57:17.638 16916-16940/? I/FA: To enable faster debug mode event logging run:
    81.       adb shell setprop debug.firebase.analytics.app com.custom.project
    82. 2022-01-21 10:57:17.685 16916-16916/? I/IL2CPP: JNI_OnLoad
    83. 2022-01-21 10:57:17.688 16916-16916/? E/SELinux: avc:  could not determine enforcing mode: Permission denied
    84. 2022-01-21 10:57:17.688 16916-16916/? E/SELinux: Unknown class directtexture
    85. 2022-01-21 10:57:17.688 16916-16916/? D/OpenGLRenderer: Skia GL Pipeline
    86. 2022-01-21 10:57:17.691 16916-16940/? W/GooglePlayServicesUtil: com.custom.project requires the Google Play Store, but it is missing.
    87. 2022-01-21 10:57:17.691 16916-16940/? W/FA: Service invalid
    88. 2022-01-21 10:57:17.701 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    89. 2022-01-21 10:57:17.711 566-3321/? E/WindowManager: App trying to use insecure INPUT_FEATURE_NO_INPUT_CHANNEL flag. Ignoring
    90. 2022-01-21 10:57:17.727 16916-16940/? I/FA: Tag Manager is not found and thus will not be used
    91. 2022-01-21 10:57:17.731 16916-16940/? W/GooglePlayServicesUtil: Google Play services is missing.
    92. 2022-01-21 10:57:17.811 16916-16916/? E/gralloc: Arm Module v1.0
    93. 2022-01-21 10:57:17.813 16916-16916/? E/ion: ioctl c0044901 failed with code -1: Invalid argument
    94. 2022-01-21 10:57:17.822 16916-16916/? I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::vsyncEventPhaseOffsetNs retrieved: 1000000 (default)
    95. 2022-01-21 10:57:17.822 16916-16916/? I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::vsyncSfEventPhaseOffsetNs retrieved: 1000000 (default)
    96. 2022-01-21 10:57:17.842 566-592/? I/ActivityManager: Displayed com.custom.project/com.unity3d.player.UnityPlayerActivity: +440ms (total +344ms)
    97. 2022-01-21 10:57:17.848 16916-16948/? I/Unity: MemoryManager: Using 'Dynamic Heap' Allocator.
    98. 2022-01-21 10:57:17.850 309-434/? I/hwcomposer: [DBQ] (q2:0xf6dafc80) Reallocate Slot(1), pool(0 -> 0) size(0 -> 4096000)
    99. 2022-01-21 10:57:17.851 309-434/? E/hwcomposer: protectedCloseImpl simply return that fd<0
    100. 2022-01-21 10:57:17.881 327-346/? I/vendor.mediatek.hardware.power@2.0-impl: powerHintAsync hint:8, data:0
    101. 2022-01-21 10:57:17.881 327-345/? I/libPowerHal: 8: cpu_ctrl set freq: -1 -1
    102. 2022-01-21 10:57:17.893 16916-16948/? I/customproject: Rejecting re-init on previously-failed class java.lang.Class<com.unity3d.player.AssetPackManagerWrapper$b>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/play/core/assetpacks/AssetPackStateUpdateListener;
    103. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    104. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    105. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    106. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    107. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    108. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    109. 2022-01-21 10:57:17.893 16916-16948/? I/customproject: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.play.core.assetpacks.AssetPackStateUpdateListener" on path: DexPathList[[zip file "/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk"],nativeLibraryDirectories=[/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/lib/arm, /data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk!/lib/armeabi-v7a, /system/lib]]
    110. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134)
    111. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
    112. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
    113. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    114. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    115. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    116. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    117. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    118. 2022-01-21 10:57:17.893 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    119. 2022-01-21 10:57:17.894 16916-16948/? I/customproject: Rejecting re-init on previously-failed class java.lang.Class<com.unity3d.player.AssetPackManagerWrapper$b>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/play/core/assetpacks/AssetPackStateUpdateListener;
    120. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    121. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    122. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    123. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    124. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    125. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    126. 2022-01-21 10:57:17.894 16916-16948/? I/customproject: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.play.core.assetpacks.AssetPackStateUpdateListener" on path: DexPathList[[zip file "/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk"],nativeLibraryDirectories=[/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/lib/arm, /data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk!/lib/armeabi-v7a, /system/lib]]
    127. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134)
    128. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
    129. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
    130. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    131. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    132. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    133. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    134. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    135. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    136. 2022-01-21 10:57:17.894 16916-16948/? I/customproject: Rejecting re-init on previously-failed class java.lang.Class<com.unity3d.player.AssetPackManagerWrapper$b>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/play/core/assetpacks/AssetPackStateUpdateListener;
    137. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    138. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    139. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    140. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    141. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    142. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    143. 2022-01-21 10:57:17.894 16916-16948/? I/customproject: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.play.core.assetpacks.AssetPackStateUpdateListener" on path: DexPathList[[zip file "/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk"],nativeLibraryDirectories=[/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/lib/arm, /data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk!/lib/armeabi-v7a, /system/lib]]
    144. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134)
    145. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
    146. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
    147. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    148. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    149. 2022-01-21 10:57:17.894 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    150. 2022-01-21 10:57:17.895 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    151. 2022-01-21 10:57:17.895 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    152. 2022-01-21 10:57:17.895 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    153. 2022-01-21 10:57:17.903 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    154. 2022-01-21 10:57:17.905 309-434/? I/hwcomposer: [OVL] (0) Overlay input(0) was used with queue previously
    155. 2022-01-21 10:57:17.905 309-434/? I/hwcomposer: [DBQ] (q2:0xf6dafc80) Buffer queue is destroyed
    156. 2022-01-21 10:57:17.905 309-434/? I/hwcomposer: [DBQ] (q2:0xf6dafc80) Free Slot(0), handle=0xf6dec180, 4096000 -> 0
    157. 2022-01-21 10:57:17.905 309-434/? I/hwcomposer: [DBQ] (q2:0xf6dafc80) Free Slot(1), handle=0xf6dec2c0, 4096000 -> 0
    158. 2022-01-21 10:57:17.906 16916-16948/? I/customproject: Rejecting re-init on previously-failed class java.lang.Class<com.unity3d.player.AssetPackManagerWrapper$b>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/play/core/assetpacks/AssetPackStateUpdateListener;
    159. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    160. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    161. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    162. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    163. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    164. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    165. 2022-01-21 10:57:17.906 16916-16948/? I/customproject: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.play.core.assetpacks.AssetPackStateUpdateListener" on path: DexPathList[[zip file "/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk"],nativeLibraryDirectories=[/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/lib/arm, /data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk!/lib/armeabi-v7a, /system/lib]]
    166. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134)
    167. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
    168. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
    169. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    170. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    171. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    172. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    173. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    174. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    175. 2022-01-21 10:57:17.906 16916-16948/? I/customproject: Rejecting re-init on previously-failed class java.lang.Class<com.unity3d.player.AssetPackManagerWrapper$b>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/play/core/assetpacks/AssetPackStateUpdateListener;
    176. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    177. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    178. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    179. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    180. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    181. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    182. 2022-01-21 10:57:17.906 16916-16948/? I/customproject: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.play.core.assetpacks.AssetPackStateUpdateListener" on path: DexPathList[[zip file "/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk"],nativeLibraryDirectories=[/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/lib/arm, /data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk!/lib/armeabi-v7a, /system/lib]]
    183. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134)
    184. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
    185. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
    186. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    187. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    188. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    189. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    190. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    191. 2022-01-21 10:57:17.906 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    192. 2022-01-21 10:57:17.909 16916-16948/? I/customproject: Rejecting re-init on previously-failed class java.lang.Class<com.unity3d.player.AssetPackManagerWrapper$b>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/play/core/assetpacks/AssetPackStateUpdateListener;
    193. 2022-01-21 10:57:17.909 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    194. 2022-01-21 10:57:17.909 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    195. 2022-01-21 10:57:17.909 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    196. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    197. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    198. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    199. 2022-01-21 10:57:17.910 16916-16948/? I/customproject: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.play.core.assetpacks.AssetPackStateUpdateListener" on path: DexPathList[[zip file "/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk"],nativeLibraryDirectories=[/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/lib/arm, /data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk!/lib/armeabi-v7a, /system/lib]]
    200. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134)
    201. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
    202. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
    203. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    204. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    205. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    206. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    207. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    208. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    209. 2022-01-21 10:57:17.910 16916-16948/? I/customproject: Rejecting re-init on previously-failed class java.lang.Class<com.unity3d.player.AssetPackManagerWrapper$b>: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/play/core/assetpacks/AssetPackStateUpdateListener;
    210. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    211. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    212. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    213. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    214. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    215. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    216. 2022-01-21 10:57:17.910 16916-16948/? I/customproject: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.play.core.assetpacks.AssetPackStateUpdateListener" on path: DexPathList[[zip file "/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk"],nativeLibraryDirectories=[/data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/lib/arm, /data/app/com.custom.project-eDFwqHiXAPgjFTKh9AHerA==/base.apk!/lib/armeabi-v7a, /system/lib]]
    217. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:134)
    218. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
    219. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
    220. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    221. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    222. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    223. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102)
    224. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at void android.os.Looper.loop() (Looper.java:193)
    225. 2022-01-21 10:57:17.910 16916-16948/? I/customproject:     at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    226. 2022-01-21 10:57:17.919 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    227. 2022-01-21 10:57:17.923 16916-16948/? I/Unity: SystemInfo CPU = ARMv7 VFPv3 NEON, Cores = 4, Memory = 1778mb
    228. 2022-01-21 10:57:17.923 16916-16948/? I/Unity: SystemInfo ARM big.LITTLE configuration: 4 big (mask: 0xf), 0 little (mask: 0x0)
    229. 2022-01-21 10:57:17.923 16916-16948/? I/Unity: ApplicationInfo com.custom.project version 1.1.6 build 5a54fc2a-53c2-4210-bb40-f24aa90cd68e
    230. 2022-01-21 10:57:17.924 16916-16948/? I/Unity: Built from '2021.1/staging' branch, Version '2021.1.22f1 (a137e5fb0427)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'armeabi-v7a', Stripping 'Enabled'
    231. 2022-01-21 10:57:17.924 566-3321/? I/AmazonPowerManagerVendorCallback: Wakelock acquired UID:1000 PID:566 Tag:WindowManager
    232. 2022-01-21 10:57:17.935 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    233. 2022-01-21 10:57:17.952 337-337/? I/chatty: uid=1000(system) /system/bin/surfaceflinger identical 1 line
    234. 2022-01-21 10:57:17.968 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    235. 2022-01-21 10:57:17.974 337-369/? E/BufferQueueProducer: [SpeechUi-Locked#0] disconnect: not connected (req=1)
    236. 2022-01-21 10:57:17.974 1440-2643/? W/libEGL: EGLNativeWindowType 0xdd9e8808 disconnect failed
    237. 2022-01-21 10:57:17.978 1440-2643/? D/mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
    238. 2022-01-21 10:57:17.986 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    239. 2022-01-21 10:57:18.002 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    240. 2022-01-21 10:57:18.017 566-646/? D/AmazonWindowMetrics: On window event - Package com.custom.project, isDreaming false, state 1, alexaMode 0
    241. 2022-01-21 10:57:18.019 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    242. 2022-01-21 10:57:18.019 337-561/? W/SurfaceFlinger: Attempting to set client state on removed layer: Splash Screen com.custom.project#0
    243. 2022-01-21 10:57:18.019 337-561/? W/SurfaceFlinger: Attempting to destroy on removed layer: Splash Screen com.custom.project#0
    244. 2022-01-21 10:57:18.036 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    245. 2022-01-21 10:57:18.051 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    246. 2022-01-21 10:57:18.057 16916-16916/? I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::vsyncEventPhaseOffsetNs retrieved: 1000000 (default)
    247. 2022-01-21 10:57:18.057 16916-16916/? I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::vsyncSfEventPhaseOffsetNs retrieved: 1000000 (default)
    248. 2022-01-21 10:57:18.067 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    249. 2022-01-21 10:57:18.251 337-337/? I/chatty: uid=1000(system) /system/bin/surfaceflinger identical 11 lines
    250. 2022-01-21 10:57:18.268 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    251. 2022-01-21 10:57:18.271 566-1724/? I/OpenGLRenderer: Initialized EGL, version 1.4
    252. 2022-01-21 10:57:18.271 566-1724/? D/OpenGLRenderer: Swap behavior 2
    253. 2022-01-21 10:57:18.271 566-1724/? E/OpenGLRenderer: Device claims wide gamut support, cannot find matching config, error = EGL_SUCCESS
    254. 2022-01-21 10:57:18.284 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    255. 2022-01-21 10:57:18.519 16916-16948/? E/SchedPolicy: set_timerslack_ns write failed: Operation not permitted
    256. 2022-01-21 10:57:18.299 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    257. 2022-01-21 10:57:18.532 16916-16948/? I/Unity: Company Name: CustomProject Ltd
    258. 2022-01-21 10:57:18.532 16916-16948/? I/Unity: Product Name: CustomProject
    259. 2022-01-21 10:57:18.538 566-1584/? I/AlexaModeSwitchManagerImpl: Inside getMode
    260. 2022-01-21 10:57:18.540 566-1584/? E/SELinux: avc:  denied  { see_home_task } for  scontext=u:r:platform_app:s0:c512,c768 tcontext=u:r:system_server:s0 tclass=amazon_policies permissive=0
    261. 2022-01-21 10:57:18.549 16916-16948/? I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
    262. 2022-01-21 10:57:18.549 16916-16948/? I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0
    263. 2022-01-21 10:57:18.555 16916-16948/? D/mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
    264. 2022-01-21 10:57:18.560 566-575/? I/system_server: NativeAlloc concurrent copying GC freed 46206(2MB) AllocSpace objects, 2(104KB) LOS objects, 24% free, 18MB/24MB, paused 226us total 235.225ms
    265. 2022-01-21 10:57:18.561 566-1584/? I/AlexaModeSwitchManagerImpl: Inside getMode
    266. 2022-01-21 10:57:18.563 566-1584/? E/SELinux: avc:  denied  { see_home_task } for  scontext=u:r:platform_app:s0:c512,c768 tcontext=u:r:system_server:s0 tclass=amazon_policies permissive=0
    267. 2022-01-21 10:57:18.570 16916-16948/? D/Unity:  GL_EXT_debug_marker GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth24 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_EXT_read_format_bgra GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_EGL_sync GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_type_2_10_10_10_REV GL_OES_fbo_render_mipmap GL_OES_element_index_uint GL_EXT_shadow_samplers GL_OES_texture_compression_astc GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_sliced_3d GL_EXT_texture_compression_astc_decode_mode GL_EXT_texture_compression_astc_decode_mode_rgb9e5 GL_KHR_debug GL_EXT_occlusion_query_boolean GL_EXT_disjoint_timer_query GL_EXT_blend_minmax GL_EXT_discard_framebuffer
    268. 2022-01-21 10:57:18.570 16916-16948/? D/Unity:  GL_OES_get_program_binary GL_OES_texture_3D GL_EXT_texture_storage GL_EXT_multisampled_render_to_texture GL_EXT_multisampled_render_to_texture2 GL_OES_surfaceless_context GL_OES_texture_stencil8 GL_EXT_shader_pixel_local_storage GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_ARM_mali_program_binary GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OES_texture_storage_multisample_2d_array GL_OES_shader_image_atomic GL_EXT_robustness GL_EXT_draw_buffers_indexed GL_OES_draw_buffers_indexed GL_EXT_texture_border_clamp GL_OES_texture_border_clamp GL_EXT_texture_cube_map_array GL_OES_texture_cube_map_array GL_OES_sample_variables GL_OES_sample_shading GL_OES_shader_multisample_interpolation GL_EXT_shader_io_blocks GL_OES_shader_io_blocks GL_EXT_tessellation_shader GL_OES_tessellation_shader GL_EXT_primitive_bounding_box GL_OES_primitive_bounding_
    269. 2022-01-21 10:57:18.570 16916-16948/? D/Unity: box GL_EXT_geometry_shader GL_OES_geometry_shader GL_ANDROID_extension_pack_es31a GL_EXT_gpu_shader5 GL_OES_gpu_shader5 GL_EXT_texture_buffer GL_OES_texture_buffer GL_EXT_copy_image GL_OES_copy_image GL_EXT_shader_non_constant_global_initializers GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float GL_EXT_YUV_target GL_OVR_multiview GL_OVR_multiview2 GL_OVR_multiview_multisampled_render_to_texture GL_KHR_robustness GL_KHR_robust_buffer_access_behavior GL_EXT_draw_elements_base_vertex GL_OES_draw_elements_base_vertex GL_EXT_protected_textures GL_EXT_buffer_storage GL_EXT_external_buffer GL_EXT_EGL_image_array GL_EXT_texture_filter_anisotropic
    270. 2022-01-21 10:57:18.581 16916-16986/? I/SwappyDisplayManager: Starting looper thread
    271. 2022-01-21 10:57:18.520 16916-16948/? I/chatty: uid=10193(com.custom.project) UnityMain identical 14 lines
    272. 2022-01-21 10:57:18.520 16916-16948/? E/SchedPolicy: set_timerslack_ns write failed: Operation not permitted
    273. 2022-01-21 10:57:18.600 566-1584/? I/AmazonPowerManagerVendorCallback: Wakelock acquired UID:1041 PID:0 Tag:AudioMix
    274. 2022-01-21 10:57:18.606 16916-16989/? D/AmazonAudioTrackCallback: No AudioTrackFlags provided.  Using internal defaults.
    275. 2022-01-21 10:57:18.608 16916-16989/? D/AmazonAudioTrackCallback: No Audio content type provided.
    276. 2022-01-21 10:57:18.608 16916-16989/? I/android.media.AudioTrack: AUDIOINFO: audio_input: format: 2 sample_rate: 24000 channels: 2 AudioAttributes: AudioAttributes: usage=USAGE_MEDIA content=CONTENT_TYPE_MUSIC flags=0x0 tags= bundle=null
    277. 2022-01-21 10:57:18.609 329-9895/? I/APM_AudioPolicyManager: getOutputForAttr() device 0x2, sampling rate 24000, format 0x1, channel mask 0x3, flags 0 stream 0x3
    278. 2022-01-21 10:57:18.610 329-9895/? D/AudioFlinger: Client defaulted notificationFrames to 682 for frameCount 2048
    279. 2022-01-21 10:57:18.613 16916-16989/? W/AudioTrack: Use of stream types is deprecated for operations other than volume control
    280. 2022-01-21 10:57:18.613 16916-16989/? W/AudioTrack: See the documentation of AudioTrack() for what to use instead with android.media.AudioAttributes to qualify your playback use case
    281. 2022-01-21 10:57:18.615 321-513/? I/ASP: asp_command: 0x0; code=73
    282. 2022-01-21 10:57:18.615 321-513/? I/ASP: set source metadata
    283. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: AFE: Stream Meta data update.
    284. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: AFE: MediaTypeHandler: Update playback stream meta data
    285. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: New AFE playback profile request: normal, Old profile: non-dolby
    286. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting, MBCL Bypass: 1
    287. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting, MBCL InpVol: 9.000000
    288. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting, PreFilter Bypass: 1
    289. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand1, CompInpVol: 0.000000
    290. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand2, CompInpVol: 0.000000
    291. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand3, CompInpVol: 0.000000
    292. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand4, CompInpVol: 0.000000
    293. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand1, compRatio: 1.000000
    294. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand2, compRatio: 1.000000
    295. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand3, compRatio: 1.000000
    296. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand4, compRatio: 1.000000
    297. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand1, compThresh: 0.000000
    298. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand2, compThresh: 0.000000
    299. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand3, compThresh: 0.000000
    300. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand4, compThresh: 0.000000
    301. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand1, compGainMin: -40.000000
    302. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand2, compGainMin: -40.000000
    303. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand3, compGainMin: -40.000000
    304. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mbcBand4, compGainMin: -40.000000
    305. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mblBand1, thresh: -0.500000 release: 50.000000
    306. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mblBand1, LimInpVol: 0.000000
    307. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mblBand2, thresh: -0.500000 release: 50.000000
    308. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mblBand2, LimInpVol: 0.000000
    309. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mblBand3, thresh: 0.000000 release: 20.000000
    310. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mblBand3, LimInpVol: 0.000000
    311. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mblBand4, thresh: 0.000000 release: 20.000000
    312. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting m_mblBand4, LimInpVol: 0.000000
    313. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting, MBC Bypass: 0
    314. 2022-01-21 10:57:18.615 321-513/? I/AUDIOALG: MBCL setting - If 48k, Bypass MBC48k Look-Ahead Buffer: 49
    315. 2022-01-21 10:57:18.616 321-513/? I/AUDIOALG: MBCL setting m_mblFullBand, thresh: 0.000000 release: 20.000000
    316. 2022-01-21 10:57:18.616 321-513/? I/AUDIOALG: MBCL setting m_mblFullBand, LimInpVol: -1.000000
    317. 2022-01-21 10:57:18.616 321-513/? I/AUDIOALG: Configure MBCL in normal profile
    318. 2022-01-21 10:57:18.616 321-1982/? D/AudioALSAStreamManager: setMasterVolume(), volume = 1.000000
    319. 2022-01-21 10:57:18.616 321-1982/? D/AudioMTKGainController: setNormalVolume(), mSceneIndex = 0, stream -1, devices 0x2, index -1, mode 0x0
    320. 2022-01-21 10:57:18.616 321-1982/? W/AudioMTKGainController: error, stream -1 is invalid, use 3 instead
    321. 2022-01-21 10:57:18.616 321-1982/? W/AudioMTKGainController: error, index -1 is invalid, use max 15 instead
    322. 2022-01-21 10:57:18.616 321-1982/? D/AudioMTKGainController: setSpeakerGain(), gain = 6, spkAnaType = 1, spkLMixerName = Headset_PGAL_GAIN, spkRMixerName = Headset_PGAR_GAIN
    323. 2022-01-21 10:57:18.616 321-1982/? D/AudioALSAStreamOut: [primary] open(), flags 2
    324. 2022-01-21 10:57:18.616 321-1982/? D/AudioALSAStreamManager: +createPlaybackHandler(), mAudioMode = 0, output_devices = 0x2
    325. 2022-01-21 10:57:18.617 321-1982/? D/AudioALSAPlaybackHandlerNormal: AudioALSAPlaybackHandlerNormal()
    326. 2022-01-21 10:57:18.617 321-1982/? D/AudioALSAStreamManager: createPlaybackHandler() ApplyFilter [0]/[1] Device [0x2]
    327. 2022-01-21 10:57:18.617 321-1982/? D/AudioALSAPlaybackHandlerNormal: +setFilterMng() mAudioFilterManagerHandler [0xeaf0f100]
    328. 2022-01-21 10:57:18.617 321-1982/? D/AudioALSAPlaybackHandlerNormal: -setFilterMng()
    329. 2022-01-21 10:57:18.617 321-1982/? D/AudioALSAStreamManager: -createPlaybackHandler(), mPlaybackHandlerVector.size() = 1
    330. 2022-01-21 10:57:18.617 321-1982/? D/AudioALSAPlaybackHandlerNormal: +open(), mDevice = 0x2
    331. 2022-01-21 10:57:18.617 321-1982/? D/AudioALSADeviceParser: compare pcm success = 0, stringpair = MultiMedia1_PLayback
    332. 2022-01-21 10:57:18.617 321-1982/? D/AudioALSAPlaybackHandlerNormal: ChooseTargetSampleRate SampleRate = 48000 outputdevice = 2
    333. 2022-01-21 10:57:18.617 321-1982/? D/AudioALSAPlaybackHandlerNormal: asp_open(), mDevice = 0x2
    334. 2022-01-21 10:57:18.617 321-1982/? I/ASP/ER: RegisterWriter writer = 0xeaf6a7ac (speaker)
    335. 2022-01-21 10:57:18.617 321-1982/? I/ASP/Conversion: PipelineSpeaker 0xeaf6a700 in 1 2 48000 out 1 2 48000
    336. 2022-01-21 10:57:18.617 321-1982/? I/AUDIOALG: setPlaybackDevices() called with 0x00000001, device type NOT changed, no action taken
    337. 2022-01-21 10:57:18.617 321-1982/? I/ASP/Conversion: SetDevice set AFE out devices = 2
    338. 2022-01-21 10:57:18.617 321-1982/? I/ASP/Conversion: SetSpeakerCalState_l: Speaker gain calibration: disabled
    339. 2022-01-21 10:57:18.617 321-1982/? D/AudioALSAPlaybackHandlerNormal: open(), mConfig: channels = 2, rate = 48000, period_size = 1536, period_count = 2, format = 0
    340. 2022-01-21 10:57:18.617 321-1982/? D/AudioALSAHardwareResourceManager: +startOutputDevice(), new_devices = 0x2, mOutputDevices = 0x0, mStartOutputDevicesCount = 0 SampleRate = 48000
    341. 2022-01-21 10:57:18.617 321-1982/? D/audio_route: Apply path: speaker
    342. 2022-01-21 10:57:18.640 321-1982/? D/AudioALSAHardwareResourceManager: -startOutputDevice(), mOutputDevices = 0x2, mStartOutputDevicesCount = 1
    343. 2022-01-21 10:57:18.640 321-1982/? D/audio_route: Apply path: normal-playback speaker
    344. 2022-01-21 10:57:18.698 321-1982/? D/AudioALSAPlaybackHandlerBase: openPcmDriverWithFlag(), pcm device = 0 flag = 0x8 mPcm = 0xe98ee8c0
    345. 2022-01-21 10:57:18.698 321-1982/? D/AudioVoiceUIDL: [GetSRCInputParameter] mOutputSampleRate 16000,  mInputSampleRate 48000, mInChannel 2, mOutChannel, 0 format 1
    346. 2022-01-21 10:57:18.698 321-1982/? D/AudioVoiceUIDL: [GetSRCInputParameter] create SRC handle fail
    347. 2022-01-21 10:57:18.698 321-1982/? D/AudioALSAPlaybackHandlerNormal: -open()
    348. 2022-01-21 10:57:18.698 321-1982/? D/AudioALSAStreamOut: [primary] -open()
    349. 2022-01-21 10:57:18.698 321-1982/? D/AudioALSAPlaybackHandlerNormal: setScreenState, rate 3072 0.064000, mode = 1 , buffer_size = 12288, channel 2, format1
    350. 2022-01-21 10:57:18.698 321-1982/? D/AudioMTKFilter: AudioMTKFilter::start() type 0 mode 4 bFirstDataWrite 1
    351. 2022-01-21 10:57:18.698 321-1982/? D/MtkAudioLoud: setWorkMode(), chNum 2, sampleRate 48000, workMode 4 RampupEnable 0
    352. 2022-01-21 10:57:18.698 321-1982/? D/MtkAudioLoud: setParameter 517 mInitParam.Initial_State 0
    353. 2022-01-21 10:57:18.698 321-1982/? D/MtkAudioLoud: +open()
    354. 2022-01-21 10:57:18.698 321-1982/? D/MtkAudioLoud: -open() result 0
    355. 2022-01-21 10:57:18.698 321-1982/? D/AudioALSAPlaybackHandlerNormal: doProcessAsp pcm_get_htimestamp failed: ret = -1, pcm_get_error =
    356. 2022-01-21 10:57:18.698 321-1982/? D/AudioALSAPlaybackHandlerNormal: doProcessAsp DelayBufferSize = 6144, inBufferSize = 6144
    357. 2022-01-21 10:57:18.700 321-513/? I/ASP: asp_command: 0x0; code=73
    358. 2022-01-21 10:57:18.700 321-513/? I/ASP: set source metadata
    359. 2022-01-21 10:57:18.700 321-513/? I/AUDIOALG: AFE: Stream Meta data update.
    360. 2022-01-21 10:57:18.700 321-513/? I/AUDIOALG: AFE: MediaTypeHandler: Update playback stream meta data
    361. 2022-01-21 10:57:18.700 321-513/? I/AUDIOALG: New AFE playback profile request: normal, Old profile: normal
    362. 2022-01-21 10:57:18.700 321-513/? I/AUDIOALG: Same AFE profile: No change
    363. 2022-01-21 10:57:18.701 321-513/? D/DlbDlbEffect: handle_EFFECT_CMD_RESET()
    364. 2022-01-21 10:57:18.701 321-513/? I/DlbDapBufferAdapter: configure(sampleRate = 48000, format = 5, inChannelMask = 0x3, outChannelMask = 0x3)
    365. 2022-01-21 10:57:18.702 321-513/? D/DlbDlbEffect: handle_EFFECT_CMD_ENABLE()
    366. 2022-01-21 10:57:18.702 321-513/? D/DlbCrossfadeProcess: setEnabled transitioning from DAP_BYPASSED state to PREROLL_ACTIVE
    367. 2022-01-21 10:57:18.702 321-1982/? D/AudioALSAPlaybackHandlerNormal: doProcessAsp DelayBufferSize = 12288, inBufferSize = 6144
    368. 2022-01-21 10:57:18.703 321-1982/? D/AudioALSAPlaybackHandlerNormal: doProcessAsp DelayBufferSize = 12288, inBufferSize = 6144
    369. 2022-01-21 10:57:18.735 321-1988/? D/DlbCrossfadeProcess: process transitioning from PREROLL_ACTIVE state to FADE_TO_ACTIVE
    370. 2022-01-21 10:57:18.764 329-543/? D/AudioFlinger: mixer(0xe5f03e00) throttle end: throttle time(13)
    371. 2022-01-21 10:57:18.862 321-1988/? D/DlbCrossfadeProcess: process transitioning from FADE_TO_ACTIVE state to DAP_ACTIVE
    372. 2022-01-21 10:57:19.517 408-408/? I/Accelerometer: flush, flushCnt:1
    373. 2022-01-21 10:57:19.518 408-630/? I/Accelerometer: flush complete, flushCnt:0
    374. 2022-01-21 10:57:19.518 408-408/? I/Accelerometer: batch: handle:0, flag:0,samplingPeriodNs:20000000 maxBatchReportLatencyNs:0
    375. 2022-01-21 10:57:19.528 16916-16948/? V/MediaRouter: Adding route: RouteInfo{ name=Tablet, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO  groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
    376. 2022-01-21 10:57:19.531 16916-16948/? V/MediaRouter: Selecting route: RouteInfo{ name=Tablet, description=null, status=null, category=RouteCategory{ name=System types=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO  groupable=false }, supportedTypes=ROUTE_TYPE_LIVE_AUDIO ROUTE_TYPE_LIVE_VIDEO , presentationDisplay=null }
    377. 2022-01-21 10:57:19.590 319-319/? I/WifiHAL: enter wifi_get_link_stats id[0] iface[0x0xef608138]
    378. 2022-01-21 10:57:19.590 319-319/? I/WifiHAL: Creating message to get link statistics; iface = 9
    379. 2022-01-21 10:57:19.590 319-319/? D/WifiHAL: WifiRequest::create vendor command to iface 9, vendor_id=0x1a11, subcmd=0x1200, res=0
    380. 2022-01-21 10:57:19.605 319-319/? I/WifiHAL: In GetLinkStatsCommand::handleResponse
    381. 2022-01-21 10:57:19.605 319-319/? D/WifiHAL: on_time: = 12461224
    382. 2022-01-21 10:57:19.605 319-319/? D/WifiHAL: tx_time: = 7440
    383. 2022-01-21 10:57:19.605 319-319/? D/WifiHAL: rx_time: = 297816
    384. 2022-01-21 10:57:19.605 319-319/? D/WifiHAL: on_time_scan: = 47544
    385. 2022-01-21 10:57:19.605 319-319/? D/WifiHAL: beacon_rx: = 26707
    386. 2022-01-21 10:57:19.605 319-319/? D/WifiHAL: rssi_mgmt: = -38
    387. 2022-01-21 10:57:19.605 319-319/? D/WifiHAL: received mpdu: = 2300
    388. 2022-01-21 10:57:19.605 319-319/? D/WifiHAL: transmite mpdu: = 25647
    389. 2022-01-21 10:57:19.605 319-319/? D/WifiHAL: lost mpdu: = 5458
    390. 2022-01-21 10:57:19.605 319-319/? D/WifiHAL: retry mpdu: = 258
    391. 2022-01-21 10:57:19.605 319-319/? D/WifiHAL: mId[0] mIface[0x0xef608138]
    392. 2022-01-21 10:57:19.659 16916-16948/? I/Unity: Odin Serializer ArchitectureInfo initialization with defaults (all unaligned read/writes disabled).
    393.    UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
    394.    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    395.    UnityEngine.Logger:Log(LogType, Object)
    396.    UnityEngine.Debug:Log(Object)
    397.    Sirenix.Serialization.ArchitectureInfo:.cctor()
    398.    Sirenix.Serialization.UnitySerializationInitializer:Initialize()
    399.    Sirenix.Serialization.UnitySerializationInitializer:InitializeRuntime()
    400. 2022-01-21 10:57:19.672 16916-16948/? I/Unity: Odin Serializer detected non-white-listed runtime platform Android; disabling all unaligned memory read/writes.
    401.    UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
    402.    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    403.    UnityEngine.Logger:Log(LogType, Object)
    404.    UnityEngine.Debug:Log(Object)
    405.    Sirenix.Serialization.ArchitectureInfo:SetRuntimePlatform(RuntimePlatform)
    406.    Sirenix.Serialization.UnitySerializationInitializer:Initialize()
    407.    Sirenix.Serialization.UnitySerializationInitializer:InitializeRuntime()
    408. 2022-01-21 10:57:19.673 16916-16948/? I/IL2CPP: Locale en-GB
    409. 2022-01-21 10:57:19.703 566-1584/? W/SensorService: sensor 00000001 already enabled in connection 0xc9627de0 (ignoring)
    410. 2022-01-21 10:57:19.703 408-408/? I/Accelerometer: batch: handle:0, flag:0,samplingPeriodNs:66667000 maxBatchReportLatencyNs:100000000
    411. 2022-01-21 10:57:19.703 408-408/? I/Accelerometer: flush, flushCnt:1
    412. 2022-01-21 10:57:19.703 408-630/? I/Accelerometer: flush complete, flushCnt:0
    413. 2022-01-21 10:57:19.704 408-408/? I/Accelerometer: batch: handle:0, flag:0,samplingPeriodNs:20000000 maxBatchReportLatencyNs:0
    414. 2022-01-21 10:57:19.716 16916-16948/? I/Unity: [TestIap] Start.
    415.    UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
    416.    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    417.    UnityEngine.Logger:Log(LogType, Object)
    418.    UnityEngine.Debug:Log(Object)
    419.    TestIap:Start()
    420. 2022-01-21 10:57:19.718 16916-16948/? I/Unity: >> [ManualIapHandler] Init.
    421.    UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
    422.    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    423.    UnityEngine.Logger:Log(LogType, Object)
    424.    UnityEngine.Debug:Log(Object)
    425.    ManualIAPHandler:Init()
    426.    TestIap:Start()
    427. 2022-01-21 10:57:19.719 566-1584/? I/AmazonPowerManagerVendorCallback: Wakelock released UID:1000 PID:566 Tag:WindowManager
    428. 2022-01-21 10:57:19.720 327-346/? I/vendor.mediatek.hardware.power@2.0-impl: powerHintAsync hint:2, data:0
    429. 2022-01-21 10:57:19.720 327-345/? I/libPowerHal: 2: set gpu level: 0
    430. 2022-01-21 10:57:19.720 327-345/? I/libPowerHal: 2: cpu_ctrl set freq: 2001000 -1
    431. 2022-01-21 10:57:19.799 16916-16955/? D/NetworkSecurityConfig: No Network Security Config specified, using platform default
    432. 2022-01-21 10:57:19.870 327-345/? I/libPowerHal: 2: cpu_ctrl set freq: -1 -1
    433. 2022-01-21 10:57:19.870 327-345/? I/libPowerHal: 2: set gpu level: 2
    434. 2022-01-21 10:57:19.870 327-345/? I/libPowerHal: 2: set gpu level max: 0
    435. 2022-01-21 10:57:19.981 16916-16948/? D/d: In App Purchasing SDK - Sandbox Mode: PurchasingListener registered: com.unity.purchasing.amazon.AmazonPurchasing@241ce7d
    436. 2022-01-21 10:57:19.981 16916-16948/? D/d: In App Purchasing SDK - Sandbox Mode: PurchasingListener Context: com.unity3d.player.UnityPlayerActivity@1190b46
    437. 2022-01-21 10:57:19.998 16916-16948/? I/Unity: >> [ManualIapHandler] Starting Initialization... module=AmazonAppStore
    438.    UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
    439.    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    440.    UnityEngine.Logger:Log(LogType, Object)
    441.    UnityEngine.Debug:Log(Object)
    442.    ManualIAPHandler:MyDebug(String)
    443.    ManualIAPHandler:InitializePurchasing()
    444.    ManualIAPHandler:Init()
    445.    TestIap:Start()
    446. 2022-01-21 10:57:20.021 16916-16948/? D/Unity Purchasing Amazon: RetrieveProducts 2
    447. 2022-01-21 10:57:20.022 16916-16948/? D/c: In App Purchasing SDK - Sandbox Mode: sendGetUserDataRequest
    448. 2022-01-21 10:57:20.023 566-1584/? W/ActivityManager: Unable to start service Intent { act=com.amazon.testclient.iap.appUserId flg=0x10000000 cmp=com.amazon.sdktestclient/.command.CommandBroker (has extras) } U=0: not found
    449. 2022-01-21 10:57:20.024 16916-16948/? I/Unity: [TestIap] Start Complete.
    450.    UnityEngine.DebugLogHandler:Internal_Log(LogType, LogOption, String, Object)
    451.    UnityEngine.DebugLogHandler:LogFormat(LogType, Object, String, Object[])
    452.    UnityEngine.Logger:Log(LogType, Object)
    453.    UnityEngine.Debug:Log(Object)
    454.    TestIap:Start()
    455. 2022-01-21 10:57:20.397 321-1988/? D/DlbDap2Process: process() called [347000] times
    456. 2022-01-21 10:57:20.855 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    457. 2022-01-21 10:57:20.858 566-649/? I/InputReader: Reconfiguring input devices.  changes=0x00000004
    458. 2022-01-21 10:57:20.869 337-337/? E/FrameEvents: updateAcquireFence: Did not find frame.
    459. 2022-01-21 10:57:22.610 319-319/? I/WifiHAL: enter wifi_get_link_stats id[0] iface[0x0xef608138]
    460. 2022-01-21 10:57:22.610 319-319/? I/WifiHAL: Creating message to get link statistics; iface = 9
    461. 2022-01-21 10:57:22.610 319-319/? D/WifiHAL: WifiRequest::create vendor command to iface 9, vendor_id=0x1a11, subcmd=0x1200, res=0
    462. 2022-01-21 10:57:22.623 319-319/? I/WifiHAL: In GetLinkStatsCommand::handleResponse
    463. 2022-01-21 10:57:22.624 319-319/? D/WifiHAL: on_time: = 12464244
    464. 2022-01-21 10:57:22.624 319-319/? D/WifiHAL: tx_time: = 7447
    465. 2022-01-21 10:57:22.624 319-319/? D/WifiHAL: rx_time: = 298143
    466. 2022-01-21 10:57:22.624 319-319/? D/WifiHAL: on_time_scan: = 47544
    467. 2022-01-21 10:57:22.624 319-319/? D/WifiHAL: beacon_rx: = 26817
    468. 2022-01-21 10:57:22.624 319-319/? D/WifiHAL: rssi_mgmt: = -36
    469. 2022-01-21 10:57:22.624 319-319/? D/WifiHAL: received mpdu: = 2332
    470. 2022-01-21 10:57:22.624 319-319/? D/WifiHAL: transmite mpdu: = 25675
    471. 2022-01-21 10:57:22.624 319-319/? D/WifiHAL: lost mpdu: = 5458
    472. 2022-01-21 10:57:22.624 319-319/? D/WifiHAL: retry mpdu: = 259
    473. 2022-01-21 10:57:22.624 319-319/? D/WifiHAL: mId[0] mIface[0x0xef608138]
    474. 2022-01-21 10:57:23.053 321-1988/? D/DlbDap2Process: process() called [347500] times
    475. 2022-01-21 10:57:23.439 11665-11673/? W/System: A resource failed to call close.
    476. 2022-01-21 10:57:23.440 11665-11673/? W/System: A resource failed to call close.
    477. 2022-01-21 10:57:25.630 319-319/? I/WifiHAL: enter wifi_get_link_stats id[0] iface[0x0xef608138]
    478. 2022-01-21 10:57:25.630 319-319/? I/WifiHAL: Creating message to get link statistics; iface = 9
    479. 2022-01-21 10:57:25.630 319-319/? D/WifiHAL: WifiRequest::create vendor command to iface 9, vendor_id=0x1a11, subcmd=0x1200, res=0
    480. 2022-01-21 10:57:25.646 319-319/? I/WifiHAL: In GetLinkStatsCommand::handleResponse
    481. 2022-01-21 10:57:25.646 319-319/? D/WifiHAL: on_time: = 12467264
    482. 2022-01-21 10:57:25.646 319-319/? D/WifiHAL: tx_time: = 7448
    483. 2022-01-21 10:57:25.646 319-319/? D/WifiHAL: rx_time: = 298260
    484. 2022-01-21 10:57:25.646 319-319/? D/WifiHAL: on_time_scan: = 47544
    485. 2022-01-21 10:57:25.646 319-319/? D/WifiHAL: beacon_rx: = 26835
    486. 2022-01-21 10:57:25.646 319-319/? D/WifiHAL: rssi_mgmt: = -39
    487. 2022-01-21 10:57:25.646 319-319/? D/WifiHAL: received mpdu: = 2334
    488. 2022-01-21 10:57:25.646 319-319/? D/WifiHAL: transmite mpdu: = 25693
    489. 2022-01-21 10:57:25.646 319-319/? D/WifiHAL: lost mpdu: = 5459
    490. 2022-01-21 10:57:25.646 319-319/? D/WifiHAL: retry mpdu: = 259
    491. 2022-01-21 10:57:25.646 319-319/? D/WifiHAL: mId[0] mIface[0x0xef608138]
    492. 2022-01-21 10:57:25.741 321-1988/? D/DlbDap2Process: process() called [348000] times
    493. 2022-01-21 10:57:27.526 566-579/? I/PackageRecency: Intent triggered to package: ComponentInfo{com.amazon.firelauncher/com.amazon.fireappscardproducer.service.SystemNotificationProducerService$PackageRecencyReceiver} for Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.custom.project cmp=com.custom.project/com.unity3d.player.UnityPlayerActivity }
    494. 2022-01-21 10:57:27.583 1539-16999/? I/F_C.BaseCardProducerSer: Handling work for com.amazon.action.PACKAGE_RECENCY_NOTIFICATION
    495. 2022-01-21 10:57:27.583 1539-16999/? I/F_C.BaseCardProducerSer: No increment in producer version.
    496. 2022-01-21 10:57:27.583 1539-16999/? I/F_C.BootstrappingProduc: All bootstrapping complete, handling work
    497. 2022-01-21 10:57:27.583 1539-16999/? I/F_C.RebuildingDatabaseO: available bytes: 22899773440
    498. 2022-01-21 10:57:27.583 1539-16999/? I/F_C.RebuildingDatabaseO: Setting WAL enabled: true, wantsWal is true
    499. 2022-01-21 10:57:27.591 1539-16999/? I/F_C.RebuildingDatabaseO: available bytes: 22899740672
    500. 2022-01-21 10:57:27.592 1539-16999/? I/F_C.SystemNotificationP: Handling work for com.amazon.action.PACKAGE_RECENCY_NOTIFICATION
    501. 2022-01-21 10:57:27.594 1539-16999/? I/F_C.SystemNotificationP: Marking app com.custom.project#com.unity3d.player.UnityPlayerActivity as accessed
    502. 2022-01-21 10:57:27.594 1539-16999/? I/F_C.DefaultAppRecency: Accessed content 833791306
    503. 2022-01-21 10:57:27.594 1539-16999/? I/F_C.DefaultAppRecencyDa: Recording app 833791306 as accessed
    504. 2022-01-21 10:57:27.598 1539-16999/? I/F_C.GamesAppsLibraryDec: Drawing games and apps library cards.
    505. 2022-01-21 10:57:27.608 1539-16999/? I/F_C.GamesAppsLibraryDec: Number of Library items : 2
    506. 2022-01-21 10:57:27.609 1539-16999/? I/F_C.LibrarySectionDeck: Drawing cards for section apps
    507. 2022-01-21 10:57:27.614 1539-16999/? I/F_C.LibrarySectionDeck: Pushing cards with 2 apps for section apps
    508. 2022-01-21 10:57:27.616 1539-16999/? I/F_C.LibrarySectionDeck: Drawing cards for section games
    509. 2022-01-21 10:57:27.618 1539-16999/? I/F_C.LibrarySectionDeck: No items returned for app types [GAME], deleting card
    510. 2022-01-21 10:57:27.618 1539-16999/? I/F_C.AppsRecencyDeck: Drawing Recent apps cards.
    511. 2022-01-21 10:57:27.642 1539-16999/? I/F_C.AppsRecencyDeck: Number of recent apps items : 6
    512. 2022-01-21 10:57:27.642 1539-16999/? I/F_C.UpNextDeck: Replacing all Up Next cards, with app last used time.
    513. 2022-01-21 10:57:27.671 1539-16999/? I/F_C.BaseCardProducerSer: Pushing 0 cards for deck LibrarySectionDeck. Triggered by com.amazon.action.PACKAGE_RECENCY_NOTIFICATION
    514. 2022-01-21 10:57:27.671 1539-16999/? I/F_C.BaseCardProducerSer: Deleting 1 cards for deck LibrarySectionDeck. Triggered by com.amazon.action.PACKAGE_RECENCY_NOTIFICATION
    515. 2022-01-21 10:57:27.671 1539-16999/? I/F_C.BaseCardProducerSer: Pushing 1 cards for deck LibrarySectionDeck. Triggered by com.amazon.action.PACKAGE_RECENCY_NOTIFICATION
    516. 2022-01-21 10:57:27.671 1539-16999/? I/F_C.BaseCardProducerSer: Deleting 0 cards for deck LibrarySectionDeck. Triggered by com.amazon.action.PACKAGE_RECENCY_NOTIFICATION
    517. 2022-01-21 10:57:27.671 1539-16999/? I/F_C.BaseCardProducerSer: Pushing 7 cards for deck UpNextDeck. Triggered by com.amazon.action.PACKAGE_RECENCY_NOTIFICATION
    518. 2022-01-21 10:57:27.671 1539-16999/? I/F_C.BaseCardProducerSer: Deleting 0 cards for deck UpNextDeck. Triggered by com.amazon.action.PACKAGE_RECENCY_NOTIFICATION
    519. 2022-01-21 10:57:27.671 1539-16999/? I/F_C.BaseCardProducerSer: Pushing 2 cards for deck GamesAppsLibraryDeck. Triggered by com.amazon.action.PACKAGE_RECENCY_NOTIFICATION
    520. 2022-01-21 10:57:27.671 1539-16999/? I/F_C.BaseCardProducerSer: Deleting 0 cards for deck GamesAppsLibraryDeck. Triggered by com.amazon.action.PACKAGE_RECENCY_NOTIFICATION
    521. 2022-01-21 10:57:27.671 1539-16999/? I/F_C.BaseCardProducerSer: Pushing 6 cards for deck AppsRecencyDeck. Triggered by com.amazon.action.PACKAGE_RECENCY_NOTIFICATION
    522. 2022-01-21 10:57:27.671 1539-16999/? I/F_C.BaseCardProducerSer: Deleting 0 cards for deck AppsRecencyDeck. Triggered by com.amazon.action.PACKAGE_RECENCY_NOTIFICATION
    523. 2022-01-21 10:57:27.671 1539-16999/? I/F_C.ProducerClientCompa: Producer com.amazon.firelauncher.fireappscardproducer at API version BrazilVersion(1.7.990.0).
    524. 2022-01-21 10:57:27.675 1539-16999/? I/F_C.ProducerClientCompa: Connected to ServerInfo(CDA Version: BrazilVersion(1.4.1264.0), Min. Producer: BrazilVersion(1.0), Delete All: true)
    525. 2022-01-21 10:57:27.679 1539-16999/? I/F_C.CardAgentSynchroniz: Throttling producer refresh
    526. 2022-01-21 10:57:27.679 1539-16999/? I/F_C.RebuildingDatabaseO: available bytes: 22899732480
    527. 2022-01-21 10:57:27.682 1539-16999/? I/F_C.CardProvider: Starting batch operation
    528. 2022-01-21 10:57:27.682 1539-16999/? I/F_C.RebuildingDatabaseO: available bytes: 22899732480
    529. 2022-01-21 10:57:27.682 1539-16999/? I/F_C.CardProvider: decomposeBatchOperations(1 ops)
    530. 2022-01-21 10:57:27.682 1539-16999/? I/F_C.CardProvider:  - replaceAll not detected
    531. 2022-01-21 10:57:27.684 1539-16999/? I/F_C.CardProvider:  - batch decomposition revealed no unnecessary deletes (1 deletes affecting 0 cards)
    532. 2022-01-21 10:57:27.685 1539-16999/? I/F_C.CardProvider: delete(ParsedUri(PRODUCER=com.amazon.firelauncher.fireappscardproducer, CARD=2026899589), null, 3392903), batched: true
    533. 2022-01-21 10:57:27.685 1539-16999/? I/F_C.RebuildingDatabaseO: available bytes: 22899732480
    534. 2022-01-21 10:57:27.686 1539-16999/? I/F_C.CardProvider: We have 1 results from decomposedOperations.
    535. 2022-01-21 10:57:27.686 1539-16999/? I/F_C.CardProvider: Decomposition not applied
    536. 2022-01-21 10:57:27.686 1539-16999/? I/F_C.CardProvider: Completed batch operation
    537. 2022-01-21 10:57:27.686 1539-16999/? I/F_C.RebuildingDatabaseO: available bytes: 22899732480
    538. 2022-01-21 10:57:27.698 1539-16999/? I/F_C.CardProvider: bulkInsert(ParsedUri(PRODUCER=com.amazon.firelauncher.fireappscardproducer), contentValues:[(com.amazon.firelauncher.fireappscardproducer/LIBRARY/com.amazon.venezia:library-apps/14886992/1642762647616), (
    It seems to reference Google Play a few times here which seems wrong.
    Code (CSharp):
    1. W/GooglePlayServicesUtil: com.custom.project requires the Google Play Store, but it is missing.
    Code (CSharp):
    1. W/GooglePlayServicesUtil: Google Play services is missing.
    etc...

    Also there's this:
    Code (CSharp):
    1. W/ActivityManager: Unable to start service Intent { act=com.amazon.testclient.iap.appUserId flg=0x10000000 cmp=com.amazon.sdktestclient/.command.CommandBroker (has extras) } U=0: not found

    Here is my code:

    Singleton that handles the IAPs:
    Code (CSharp):
    1.  
    2. using System;
    3. using System.Collections.Generic;
    4. using UnityEngine;
    5. using UnityEngine.Purchasing;
    6. using UnityEngine.UI;
    7. using UnityEngine.Purchasing.Security;
    8. using Pixelplacement;
    9.  
    10. public class ManualIAPHandler : Singleton<ManualIAPHandler>, IStoreListener
    11. {
    12.     public Action<bool> Event_InitialisedComplete;
    13.     public Action<bool, string> Event_SubscriptionComplete;
    14.     public Action<bool, string> Event_PurchaseComplete;
    15.  
    16.     protected ManualIAPHandler() { }
    17.  
    18.     private static IStoreController m_StoreController;          // The Unity Purchasing system.
    19.     private static IExtensionProvider m_StoreExtensionProvider; // The store-specific Purchasing subsystems.
    20.     private IAppleExtensions m_AppleExtensions;
    21.     private IGooglePlayStoreExtensions m_GoogleExtensions;
    22.  
    23.     [SerializeField] private CustomIAPProduct[] _products;
    24.  
    25.     [Serializable]
    26.     public struct CustomIAPProduct
    27.     {
    28.         public string Id;
    29.         public ProductType Type;
    30.     }
    31.  
    32.     //===================================================
    33.     // UNITY METHODS
    34.     //===================================================
    35.  
    36.     void Start()
    37.     {
    38.         // If we haven't set up the Unity Purchasing reference
    39.         if (m_StoreController == null)
    40.         {
    41.             // Begin to configure our connection to Purchasing, can use button click instead
    42.             // InitializePurchasing();
    43.         }
    44.     }
    45.  
    46.     //===================================================
    47.     // PUBLIC METHODS
    48.     //===================================================
    49.  
    50.     /// <summary>
    51.     /// Initialise the Purchasing. This will then check the products for subscriptions and dispatch SubscriptionCOmplete.
    52.     /// </summary>
    53.     public void Init()
    54.     {
    55.         Debug.Log(">> [ManualIapHandler] Init.");
    56.  
    57.         if (m_StoreController == null)
    58.         {
    59.             InitializePurchasing();
    60.         }
    61.     }
    62.  
    63.  
    64.     /// <summary>
    65.     /// Buy a product. Pass in the product Id.
    66.     /// </summary>
    67.     /// <param name="productId"></param>
    68.     public void BuySubscription(string productId)
    69.     {
    70.         Debug.Log($"[ManualIapHandler] BuySubscription. Product={productId}");
    71.  
    72.         if (!IsInitialized())
    73.         {
    74.             InitializePurchasing();
    75.         }
    76.  
    77.         BuyProductID(productId);
    78.     }
    79.  
    80.  
    81.     /// <summary>
    82.     /// Restore the existing products. This will also check for subscriptions and dispatch teh SubsctriptionCompelte.
    83.     /// </summary>
    84.     public void RestorePurchases()
    85.     {
    86.         Debug.Log($">> [ManualIapHandler] RestorePurchases.");
    87.  
    88.         if (!IsInitialized())
    89.         {
    90.             InitializePurchasing();
    91.         }
    92.  
    93.         if (Application.platform == RuntimePlatform.IPhonePlayer)
    94.         {
    95.             m_AppleExtensions.RestoreTransactions(OnRestoreComplete);//.RestoreTransactions(result =>
    96.         }
    97.         else
    98.         {
    99.             m_GoogleExtensions.RestoreTransactions(OnRestoreComplete);
    100.         }
    101.     }
    102.  
    103.  
    104.  
    105.     /// <summary>
    106.     /// Lists all of the products.
    107.     /// </summary>
    108.     public void ListProducts()
    109.     {
    110.         Debug.Log($"[ManualIapHandler] List Products.");
    111.  
    112.         foreach (UnityEngine.Purchasing.Product item in m_StoreController.products.all)
    113.         {
    114.             Debug.Log($"[ManualIapHandler] Product={item.definition.id.ToString()}. HasReceipt={(item.receipt != null)}");
    115.             if (item.receipt != null)
    116.             {
    117.  
    118.                 MyDebug($"[ManualIapHandler] Receipt found for Product={item.definition.id.ToString()}");
    119.             }
    120.         }
    121.     }
    122.  
    123.     /// <summary>
    124.     /// Returns the price with the currency symbol.
    125.     /// </summary>
    126.     /// <returns></returns>
    127.     public string GetProductPriceString(string productId)
    128.     {
    129.         var priceStr = "0.00";
    130.         priceStr = m_StoreController.products.WithID(productId)?.metadata.localizedPriceString;
    131.         Debug.Log($">> [ManualIapHandler] GetProductPriceString = {priceStr}");
    132.         return priceStr;
    133.     }
    134.  
    135.     //===================================================
    136.     // PRIVATE METHODS
    137.     //===================================================
    138.  
    139.  
    140.     private void InitializePurchasing()
    141.     {
    142.         if (IsInitialized())
    143.         {
    144.             return;
    145.         }
    146.  
    147.         StandardPurchasingModule module;
    148.  
    149. #if !KINDLE
    150.         module = StandardPurchasingModule.Instance();
    151. #else
    152.         module = StandardPurchasingModule.Instance(AppStore.AmazonAppStore);
    153. #endif
    154.  
    155.         var builder = ConfigurationBuilder.Instance(module);
    156.         foreach (var p in _products)
    157.         {
    158.             builder.AddProduct(p.Id, p.Type);
    159.         }
    160.  
    161.         MyDebug($">> [ManualIapHandler] Starting Initialization... module={module.appStore.ToString()}");
    162.  
    163.         UnityPurchasing.Initialize(this, builder);
    164.     }
    165.  
    166.  
    167.     private bool IsInitialized()
    168.     {
    169.         return m_StoreController != null && m_StoreExtensionProvider != null;
    170.     }
    171.  
    172.  
    173.     public void CheckProductsForSubscriptions()
    174.     {
    175.         Debug.Log($">> [ManualIapHandler] CheckProductsForSubscriptions.");
    176.  
    177.         Dictionary<string, string> dict = m_AppleExtensions.GetIntroductoryPriceDictionary();
    178.  
    179.         foreach (UnityEngine.Purchasing.Product item in m_StoreController.products.all)
    180.         {
    181.             if (item.receipt != null)
    182.             {
    183.                 string intro_json = (dict == null || !dict.ContainsKey(item.definition.storeSpecificId)) ? null : dict[item.definition.storeSpecificId];
    184.  
    185.                 if (item.definition.type == ProductType.Subscription)
    186.                 {
    187.                     SubscriptionManager p = new SubscriptionManager(item, intro_json);
    188.                     SubscriptionInfo info = p.getSubscriptionInfo();
    189.  
    190.                     MyDebug(">> [ManualIapHandler] Sub Info: " + info.getProductId().ToString());
    191.                     MyDebug(">> [ManualIapHandler] Sub isSubscribed: " + info.isSubscribed().ToString());
    192.                     MyDebug(">> [ManualIapHandler] Sub isFreeTrial: " + info.isFreeTrial().ToString());
    193.  
    194.                     // If we find a subsctiption, break out of the loop because its all we need.
    195.                     var subscribed = (info.isSubscribed() == Result.True || info.isFreeTrial() == Result.True);
    196.                     if (subscribed)
    197.                     {
    198.                         Event_SubscriptionComplete(true, info.getProductId());
    199.                         return;
    200.                     }
    201.                 }
    202.             }
    203.         }
    204.  
    205.         // This will be false if no subscription was found.
    206.         Event_SubscriptionComplete(false, "");
    207.     }
    208.  
    209.  
    210.     private void BuyProductID(string productId)
    211.     {
    212.         if (IsInitialized())
    213.         {
    214.             UnityEngine.Purchasing.Product product = m_StoreController.products.WithID(productId);
    215.  
    216.             if (product != null && product.availableToPurchase)
    217.             {
    218.                 MyDebug(string.Format("[ManualIapHandler] Purchasing product:" + product.definition.id.ToString()));
    219.                 m_StoreController.InitiatePurchase(product);
    220.             }
    221.             else
    222.             {
    223.                 MyDebug(">> [ManualIapHandler] BuyProductID: FAIL. Not purchasing product, either is not found or is not available for purchase");
    224.             }
    225.         }
    226.         else
    227.         {
    228.             MyDebug(">> [ManualIapHandler] BuyProductID FAIL. Not initialized.");
    229.         }
    230.     }
    231.  
    232.  
    233.     //===================================================
    234.     // EVENT HANDLERS
    235.     //===================================================
    236.  
    237.  
    238.     #region INITIALISATION
    239.  
    240.     void IStoreListener.OnInitialized(IStoreController controller, IExtensionProvider extensions)
    241.     {
    242.         MyDebug(">> [ManualIapHandler] OnInitialized: SUCCESS");
    243.  
    244.         m_StoreController = controller;
    245.         m_StoreExtensionProvider = extensions;
    246.         m_AppleExtensions = extensions.GetExtension<IAppleExtensions>();
    247.         m_GoogleExtensions = extensions.GetExtension<IGooglePlayStoreExtensions>();
    248.  
    249.         // Dispatch Initialisation complete.
    250.         Event_InitialisedComplete?.Invoke(true);
    251.  
    252.         // List all the products for logging.
    253.         ListProducts();
    254.     }
    255.  
    256.  
    257.     public void OnInitializeFailed(InitializationFailureReason error)
    258.     {
    259.         MyDebug($">> [ManualIapHandler] OnInitialized: FAILED. InitializationFailureReason={error}");
    260.         // Purchasing set-up has not succeeded. Check error for reason. Consider sharing this reason with the user.
    261.  
    262.         // Dispatch Initialisation failed.
    263.         Event_InitialisedComplete?.Invoke(false);
    264.     }
    265.     #endregion
    266.  
    267.  
    268.  
    269.     #region  PURCHASES
    270.  
    271.     public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
    272.     {
    273.         // if KINDLE we do not validate the recipts.
    274. #if KINDLE
    275.         if (args.purchasedProduct.hasReceipt)
    276.         {
    277.             Event_PurchaseComplete?.Invoke(true, args.purchasedProduct.definition.id);
    278.             return PurchaseProcessingResult.Complete;
    279.         }
    280. #endif
    281.  
    282.         try
    283.         {
    284.             var validator = new CrossPlatformValidator(GooglePlayTangle.Data(), AppleTangle.Data(), Application.identifier);
    285.             var result = validator.Validate(args.purchasedProduct.receipt);
    286.  
    287.             MyDebug(">> [ManualIapHandler] Validate = " + result.ToString());
    288.  
    289.             foreach (IPurchaseReceipt productReceipt in result)
    290.             {
    291.                 MyDebug(">> [ManualIapHandler] Valid receipt for " + productReceipt.productID.ToString());
    292.                 Event_PurchaseComplete?.Invoke(true, productReceipt.productID);
    293.                 return PurchaseProcessingResult.Complete;
    294.             }
    295.         }
    296.         catch (Exception e)
    297.         {
    298.             MyDebug(">> [ManualIapHandler] ProcessingPurchase Failed. Error is " + e.Message.ToString());
    299.             // Dispatch a false if something went wrong.
    300.             Event_PurchaseComplete?.Invoke(false, args.purchasedProduct.definition.id);
    301.             return PurchaseProcessingResult.Complete;
    302.         }
    303.  
    304.  
    305.         // This is a fallback if hte trycatch doesnt work.
    306.         MyDebug(string.Format(">> [ManualIapHandler] TRYCATCH Failed. ProcessPurchase: " + args.purchasedProduct.definition.id));
    307.         Event_PurchaseComplete?.Invoke(true, args.purchasedProduct.definition.id);
    308.         return PurchaseProcessingResult.Complete;
    309.     }
    310.  
    311.  
    312.     public void OnPurchaseFailed(UnityEngine.Purchasing.Product product, PurchaseFailureReason failureReason)
    313.     {
    314.         MyDebug(string.Format(">> [ManualIapHandler] OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
    315.         Event_PurchaseComplete?.Invoke(false, product.definition.id);
    316.  
    317.     }
    318.  
    319.     public void OnPurchaseDeferred(Product product)
    320.     {
    321.  
    322.         MyDebug("[ManualIapHandler] Deferred product " + product.definition.id.ToString());
    323.     }
    324.     #endregion
    325.  
    326.  
    327.     private void OnRestoreComplete(bool result)
    328.     {
    329.         if (result)
    330.         {
    331.             MyDebug(">> [ManualIapHandler] Restore purchases succeeded.");
    332.             CheckProductsForSubscriptions();
    333.         }
    334.         else
    335.         {
    336.             MyDebug(">> [ManualIapHandler] Restore purchases failed.");
    337.         }
    338.     }
    339.  
    340.  
    341.  
    342.  
    343.  
    344.     private void MyDebug(string debug)
    345.     {
    346.  
    347.         Debug.Log(debug);
    348.         // myText.text += "\r\n" + debug;
    349.     }
    350.  
    351. }
    352.  
    Class that tries to initialise the IAPS:
    Code (CSharp):
    1. using UnityEngine;
    2.  
    3. public class TestIap : MonoBehaviour
    4. {
    5.  
    6.     //===================================================
    7.     // UNITY METHODS
    8.     //===================================================
    9.  
    10.     private void Start()
    11.     {
    12.         Debug.Log($"[TestIap] Start.");
    13.  
    14.         ManualIAPHandler.Instance.Event_InitialisedComplete += OnInitialisationComplete;
    15.         ManualIAPHandler.Instance.Event_SubscriptionComplete += OnSubscriptionComplete;
    16.         ManualIAPHandler.Instance.Init();
    17.  
    18.         Debug.Log($"[TestIap] Start Complete.");
    19.     }
    20.  
    21.     //===================================================
    22.     // PUBLIC METHODS
    23.     //===================================================
    24.  
    25.  
    26.     //===================================================
    27.     // PRIVATE METHODS
    28.     //===================================================
    29.  
    30.  
    31.     //===================================================
    32.     // EVENT HANDLERS
    33.     //===================================================
    34.  
    35.     private void OnInitialisationComplete(bool iapInitSuccess)
    36.     {
    37.         Debug.Log($"[TestIap] OnInitialisationComplete: Success={iapInitSuccess}");
    38.     }
    39.  
    40.  
    41.     private void OnSubscriptionComplete(bool isSubscribed, string product)
    42.     {
    43.         Debug.Log($"[TestIap] OnSubscriptionComplete: isSubscribed={isSubscribed}, product={product}");
    44.     }
    45.  
    46. }
    47.  
     
    Last edited: Jan 21, 2022
  14. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    @bz_apps Typically you don't want to publish your app until it's working in your testing. Have you selected the Amazon store in the Unity Editor? Use menu Window/Unity IAP/Switch Store. Also, I might recommend that you avoid code customizations until you have the basic code working, consider testing with the Sample IAP Project here https://forum.unity.com/threads/sample-iap-project.529555/#post-6950270
     
  15. bz_apps

    bz_apps

    Joined:
    Aug 19, 2014
    Posts:
    70

    I have selected the store in the menu but am also setting it in the code so so hopefully there is no need to manually set it in the editor. If you review the logs you can see it has is being returned as Amazon Store.

    Code (CSharp):
    1.         StandardPurchasingModule module;
    2. #if !KINDLE
    3.         module = StandardPurchasingModule.Instance();
    4. #else
    5.         module = StandardPurchasingModule.Instance(AppStore.AmazonAppStore);
    6. #endif
    7.         var builder = ConfigurationBuilder.Instance(module);

    Did you have a chance to review the code I posted? It is taken from the sample, the only real difference is that we are passing in the products rather than them being hard coded.

    The initialisation is the same code but it does not work...

    The code is exactly the same and works fine in our IOS and Google Play apps, it just doesn't work on Amazon...
     
    Last edited: Jan 23, 2022
  16. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    I would not be able to debug your code as I mentioned. Please use the exact code from the Sample IAP Project, I have confirmed it works on Amazon.
     
  17. bz_apps

    bz_apps

    Joined:
    Aug 19, 2014
    Posts:
    70
    I tested the Sample Project and was able to see it working.

    I've been trying to figure out what is going wrong.

    @JeffDUnity3D Is it possible to set the billing store via code? I thought the code I was using would do it but it throws and error. If I leave the Store in the menu as google play and try to set the store in code I get the following error:

    Code:
    Code (CSharp):
    1. StandardPurchasingModule module = StandardPurchasingModule.Instance(AppStore.AmazonAppStore);
    2.         var builder = ConfigurationBuilder.Instance(module);

    Error:
    Code (CSharp):
    1. 2022-01-24 12:32:07.996 5889-5908/? E/Unity: NotSupportedException: Failed to bind to native store: UnityEngine.AndroidJavaException: java.lang.ClassNotFoundException: com.unity.purchasing.amazon.AmazonPurchasing
    2.       at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <00000000000000000000000000000000>:0
    3.       at UnityEngine.AndroidJNISafe.FindClass (System.String name) [0x00000] in <00000000000000000000000000000000>:0
    4.       at UnityEngine.AndroidJavaClass._AndroidJavaClass (System.String className) [0x00000] in <00000000000000000000000000000000>:0
    5.       at UnityEngine.Purchasing.NativeStoreProvider.GetAndroidStoreHelper (UnityEngine.Purchasing.IUnityCallback callback, UnityEngine.Purchasing.AppStore store, UnityEngine.Purchasing.Extension.IPurchasingBinder binder, Uniject.IUtil util) [0x00000] in <00000000000000000000000000000000>:0
    6.       at UnityEngine.Purchasing.NativeStoreProvider.GetAndroidStore (UnityEngine.Purchasing.IUnityCallback callback, UnityEngine.Purchasing.AppStore store, UnityEngine.Purchasing.Extension.IPurchasingBinder binder, Uniject.IUti
    The reason I ask is that we use cloud build and having to set the store via a menu in the editor would require maintaining 3 branches so we can set the menu to each store. It seems a strange mix of code and user interface.
     
  18. Remstam

    Remstam

    Joined:
    Oct 6, 2017
    Posts:
    23
    You can (and have to) use UnityEditor.Purchasing.TargetAndroidStore if you want to switch between Google Play/Amazon stores. I guess preprocess build step is a good choice to call this.

    Also there are a few words about it in docs.

    Also I have experienced super unstable behaviour with testing Amazon store in sandbox mode (even without Unity IAP), so my choice is to go straight forward to Live App Testing mode.
     
    bz_apps likes this.
  19. mpaxman

    mpaxman

    Joined:
    Oct 2, 2013
    Posts:
    10
    Hi @JeffDUnity3D (or anyone lese who can help), I am running into a similar problem so figured I'd jump in on this thread. I have downloaded the linked sample project and put it into sandbox mode and have Amazon App Tester all setup but it is not working for me. When running the sample app on device Unity purchasing never moves beyond sendGetUserDataRequest.

    upload_2022-8-31_14-41-42.png

    I'm using Unity 2020.3.27f1 with Unity Purchasing 4.1.5
    Test device is Amazon Fire HD 8 (7th gen)

    Could you offer some help?
    Thanks
     
  20. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Did you ensure to target Amazon under Switch Store? In the Unity Editor, select menu Services/In-App Purchasing
     
  21. mpaxman

    mpaxman

    Joined:
    Oct 2, 2013
    Posts:
    10
    Yes
     
  22. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    mpaxman and bz_apps like this.
  23. mpaxman

    mpaxman

    Joined:
    Oct 2, 2013
    Posts:
    10
  24. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    I submitted a new build, they mentioned it should be approved sometime next week as long as it passes review.
     
    mpaxman likes this.
  25. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    @mpaxman It worked for me. Although I couldn't sideload via USB, it would not initialize. But when I downloaded the app update from the App Store via LAT testing, it works just fine. I believe Amazon adds the DRM encoding to it after you upload it, for security.
     
  26. mpaxman

    mpaxman

    Joined:
    Oct 2, 2013
    Posts:
    10
    @JeffDUnity3D - Not sure, I'm following - You submitted a new build of the demo project? Or the Unity IAP package?
    And the demo app is working fine for you via LAT after some changes that you did?
     
  27. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    I did both. I updated the Sample IAP Project to IAP 4.4.1 and submitted to the app store. Direct install via USB would hang, but downloading the same release via the Amazon App Store after they added DRM works. I made no other changes to the app. It worked before the IAP upgrade and after.
     
  28. mpaxman

    mpaxman

    Joined:
    Oct 2, 2013
    Posts:
    10
    Oh ok, so when submitting the apk we need to make sure we say YES to adding DRM?
    upload_2022-9-6_15-21-59.png
    And then hypothetically if we have stuck close to the sample project IAP should work?
     
  29. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Yes, that is the process I followed. I don't think they will even allow you to submit the app without DRM. Then you need to download the app via the Amazon App Store as a tester.
     
  30. mpaxman

    mpaxman

    Joined:
    Oct 2, 2013
    Posts:
    10
    @JeffDUnity3D OK, awesome. Looks like the IAP works if tested via Live App Testing with Amazon's DRM applied.
    Thanks for your help!
     
  31. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    The downside is that you can't sideload the app directly via USB to test, which is an issue. The DRM notice on the Amazon portal mentioned that my app was using an "outdated SDK". We may need to update IAP to use the latest SDK, if we are able to do so. I will mention it to the team.
     
    xLeo, leobilck and mpaxman like this.
  32. xLeo

    xLeo

    Joined:
    Sep 21, 2010
    Posts:
    194
    Hi Jeff, any news about that?