Amazon IAP SDK: no response when testing IAP in Live App Testing

I am trying to integrate the latest version of the Amazon IAP API into my Android 4+ application. Everything seems to work just fine when the app loads onto my test devices (Nexus 5 and Kindle Fire) and is used with the Amazon app tester. IAP can be purchased without any problems.

I know that I downloaded the version of the Live App Testing application to the Amazon store and installed it on my test devices. Running these versions of IAP is not possible.

This is the log output when using the downloaded version with App Tester:

D/PTLog (14109): IAPManager - init - using Amazon D/d (14109): In App Purchasing SDK - Sandbox Mode: PurchasingListener registered: xyz.IAPManager@425fe410 D/d (14109): In App Purchasing SDK - Sandbox Mode: PurchasingListener Context: xyz D/c (14109): In App Purchasing SDK - Sandbox Mode: sendPurchaseUpdatesRequest/sendGetUserData first:GET_USER_ID_FOR_PURCHASE_UPDATES_PREFIX:1:fca787d5-4b9d-42e4-840f-ff28f3d13ac4 W/ContextImpl(14109): Implicit intents with startService are not safe: Intent { act=com.amazon.testclient.iap.appUserId flg=0x10000000 (has extras) } android.content.ContextWrapper.startService:494 com.amazon.device.iap.internal.aca:87 com.amazon.device.iap.internal.aca:150 D/c (14109): In App Purchasing SDK - Sandbox Mode: sendItemDataRequest W/ContextImpl(14109): Implicit intents with startService are not safe: Intent { act=com.amazon.testclient.iap.itemData flg=0x10000000 (has extras) } android.content.ContextWrapper.startService:494 com.amazon.device.iap.internal.aca:137 com.amazon.device.iap.internal.da:103 D/c (14109): In App Purchasing SDK - Sandbox Mode: handleResponse I/c (14109): sendGetPurchaseUpdates with user idl3HL7XppEMhrOGDnur9-ulvqomrSg6qyODKmah76lJU= I/c (14109): send PurchaseUpdates with user id:l3HL7XppEMhrOGDnur9-ulvqomrSg6qyODKmah76lJU=;reset flag:true, local cursor:null, parsed from old requestId:GET_USER_ID_FOR_PURCHASE_UPDATES_PREFIX:1:fca787d5-4b9d-42e4-840f-ff28f3d13ac4 W/ContextImpl(14109): Implicit intents with startService are not safe: Intent { act=com.amazon.testclient.iap.purchaseUpdates flg=0x10000000 (has extras) } android.content.ContextWrapper.startService:494 com.amazon.device.iap.internal.aca:421 com.amazon.device.iap.internal.ace:388 D/c (14109): In App Purchasing SDK - Sandbox Mode: handleResponse 

As you can see, the purchase SDK is initialized just fine. When using the Live App Testing version, the log now shows the following:

 D/PTLog (18032): IAPManager - init - using Amazon D/Kiwi (18032): In App Purchasing SDK - Production Mode: d: PurchasingListener registered: xyz.a.a.d@410435f8 D/Kiwi (18032): In App Purchasing SDK - Production Mode: d: PurchasingListener Context: xyz@41021558 D/Kiwi (18032): In App Purchasing SDK - Production Mode: a: sendGetPurchaseUpdates D/Kiwi (18032): Kiwi: WARNING: Use of deprecated method detected. E/Kiwi (18032): Kiwi: Kiwi subsystem is not fully initialized. Cannot process task. D/Kiwi (18032): In App Purchasing SDK - Production Mode: a: sendGetProductDataRequest D/Kiwi (18032): Kiwi: WARNING: Use of deprecated method detected. E/Kiwi (18032): Kiwi: Kiwi subsystem is not fully initialized. Cannot process task. 

As you can see, the problem is related to the Purchasing SDK:

 "Kiwi: WARNING: Use of deprecated method detected." 

It doesn't matter if the Kindle or Nexus Live App Testing version is used with the latest version of the Amazon Store app. The result is exactly the same: IAPs are not possible.

Is this a known issue? How can this be solved?

Many thanks

+7
android amazon in-app-purchase
source share
2 answers

I finally found a solution to the problems described in my question. Sorry for not posting this before ...

There is one in the Amazon API docs that describes that there are some limitations that you can use to obfuscate code. It seems that some APIs no longer work if obfuscation is too strong.

+4
source share

Are you registering an Amazon callback listener in your MainActivity.onCreate (...)?

Purchases Service.registerListener (this.getApplicationContext (), new YourCallbackPurchasingListener ());

If you do not, try this.

0
source share