2016-01-15 18 views
15

Ho implementato la classe IabHelper nel mio progetto Android e dice che 'getBuyIntentToReplaceSkus' non può essere risolto. Il metodo integrale:La classe IabHelper non funziona?

buyIntentBundle = mService.getBuyIntentToReplaceSkus(5, 
mContext.getPackageName(),oldSkus, sku, itemType, extraData); 

ho implementato in app billing nel mio progetto, ma non ho ancora creato nessun articolo da acquistare, anche se il resto dei metodi non hanno alcun problema.

risposta

41

L'aiuto nel progetto di esempio di Google è diverso dal file di aiuto incluso nell'SDK extra "Google Play Billing". Non ho idea del motivo per cui hanno pensato che fosse una buona idea. Sostituisci l'aiuto nel tuo progetto con quello incluso nel progetto di esempio. Questo contiene i riferimenti al metodo mancanti. Puoi anche copiare e incollare il seguente codice nel tuo file helpl in fondo:

/** 
* This API is currently under development. 
*/ 
int stub(int apiVersion, String packageName, String type); 

/** 
* Returns a pending intent to launch the purchase flow for upgrading or downgrading a 
* subscription. The existing owned SKU(s) should be provided along with the new SKU that 
* the user is upgrading or downgrading to. 
* @param apiVersion billing API version that the app is using, must be 5 or later 
* @param packageName package name of the calling app 
* @param oldSkus the SKU(s) that the user is upgrading or downgrading from, 
*  if null or empty this method will behave like {@link #getBuyIntent} 
* @param newSku the SKU that the user is upgrading or downgrading to 
* @param type of the item being purchased, currently must be "subs" 
* @param developerPayload optional argument to be sent back with the purchase information 
* @return Bundle containing the following key-value pairs 
*   "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response codes 
*       on failures. 
*   "BUY_INTENT" - PendingIntent to start the purchase flow 
* 
* The Pending intent should be launched with startIntentSenderForResult. When purchase flow 
* has completed, the onActivityResult() will give a resultCode of OK or CANCELED. 
* If the purchase is successful, the result data will contain the following key-value pairs 
*   "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response 
*       codes on failures. 
*   "INAPP_PURCHASE_DATA" - String in JSON format similar to 
*         '{"orderId":"12999763169054705758.1371079406387615", 
*         "packageName":"com.example.app", 
*         "productId":"exampleSku", 
*         "purchaseTime":1345678900000, 
*         "purchaseToken" : "122333444455555", 
*         "developerPayload":"example developer payload" }' 
*   "INAPP_DATA_SIGNATURE" - String containing the signature of the purchase data that 
*         was signed with the private key of the developer 
*         TODO: change this to app-specific keys. 
*/ 
Bundle getBuyIntentToReplaceSkus(int apiVersion, String packageName, 
    in List<String> oldSkus, String newSku, String type, String developerPayload); 
+0

Non dimenticare di ricostruire il progetto dopo aver sostituito/modificato il file. Senza ricostruirlo, l'errore non andrà via e potresti pensare che il problema non sia risolto ... – Barakuda

Problemi correlati