Sto tentando di far funzionare i servizi di fatturazione in-app di Google.Android In App Billing SecurityException "Richiamo del raccoglitore a un'interfaccia errata"
Ho finora che il servizio è legato e collegato, ma una volta che provo a recuperare alcuni dati dal servizio si blocca con il registro:
04-02 10:36:32.795 10569-10651/my.app.package E/IAP﹕ java.lang.SecurityException: Binder invocation to an incorrect interface
at android.os.Parcel.readException(Parcel.java:1425)
at android.os.Parcel.readException(Parcel.java:1379)
at billing.IInAppBillingService$Stub$Proxy.getSkuDetails(IInAppBillingService.java:251)
at my.app.package.libs.clientbackend.iap.IAPHelper$FetchItemsCallable.call(IAPHelper.java:102)
at my.app.package.libs.clientbackend.iap.IAPHelper$FetchItemsCallable.call(IAPHelper.java:89)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:856)
Questo è il mio codice finora:
l'attività che mostra gli acquisti:
Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
serviceIntent.setPackage("com.android.vending");
bindService(serviceIntent, this, Context.BIND_AUTO_CREATE);
le chiamate IAB una volta che il servizio è collegato:
Bundle itemBundle = new Bundle();
itemBundle.putStringArrayList("ITEM_ID_LIST", new ArrayList<>(Arrays.asList(itemIds)));
Bundle detailsBundle = service
.getSkuDetails(3, context.getPackageName(), "inapp", itemBundle);
Errore nell'ultima riga ...getSkuDetails(...
con l'errore pubblicato sopra.
Ho fatto qualche ricerca su questo tema e abbiamo trovato il nostro che potrebbe essere causato da nomi dei pacchetti sbagliati. Ho incluso il IInAppBillingService.aidl
come è descritto sulla documentazione di Google, ma ancora sto ottenendo un pacchetto sbagliato durante l'importazione:
Il file e ': src/main/aidl/com/android/vending/billing/IInAppBillingService.aidl
ma quando sono l'importazione della classe generata Android Studio utilizza questa importazione percorso:
import billing.IInAppBillingService;
In base alla documentazione dovrebbe essere in realtà:
import com.android.vending.billing.IInAppBillingService;
Is c'è ancora qualcosa di sbagliato nella configurazione del mio progetto o qualcuno conosce la causa di questo errore?
Molto grazie in anticipo, McFarlane
funziona? –
sì è .....! –
grazie .......................! – Saveen