我在获取应用内购买功能时遇到问题。在执行应用程序内购买时,我遵循Google Developer网站上的步骤,在此处找到: https://developer.android.com/google/play/billing/billing_integrate.htmlAndroid应用内购买错误:您的订单无法处理
该应用程序在Google Play商店中发布,我尝试使用其他帐户购买应用内购买我的Google开发者帐户(我尝试了其他几种)。我的应用程序的最新版本是在Januari 18日完成的。
所以关于代码,一切看起来都很好,购买流程通过此代码启动。 buyConsumable方法中的参考是SKU。
public void buyConsumable(String reference, BuyConsumableCompletionHandler handler) {
this.reference = reference;
defaultHandler = handler;
if(iabHelper != null) {
try {
iabHelper.launchPurchaseFlow(activity, reference, 10001, this);
} catch (Exception e) {
Log.e(Constants.ERROR, e.getLocalizedMessage());
defaultHandler.purchaseFailed();
}
} else {
defaultHandler.purchaseFailed();
}
}
我使用默认的iabHelper没什么奇特的。当launchflow被称为和谷歌Play商店的弹出窗口我看到在我的Android监视器以下异常:
01-24 14:29:53.891 4865-5272/? E/Parcel: Class not found when unmarshalling: com.google.android.finsky.billing.lightpurchase.PurchaseParams java.lang.ClassNotFoundException: com.google.android.finsky.billing.lightpurchase.PurchaseParams at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:324) at android.os.Parcel.readParcelableCreator(Parcel.java:2404) at android.os.Parcel.readParcelable(Parcel.java:2358) at android.os.Parcel.readValue(Parcel.java:2264) at android.os.Parcel.readArrayMapInternal(Parcel.java:2614) at android.os.BaseBundle.unparcel(BaseBundle.java:221) at android.os.BaseBundle.getString(BaseBundle.java:920) at android.content.Intent.getStringExtra(Intent.java:6195) at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:2699) at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:2161) at com.android.server.am.ActivityManagerService.startActivityInPackage(ActivityManagerService.java:6877) at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:310) at com.android.server.am.ActivityManagerService.startActivityIntentSender(ActivityManagerService.java:6635) at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:292) at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3991) at android.os.Binder.execTransact(Binder.java:453) Caused by: java.lang.ClassNotFoundException: com.google.android.finsky.billing.lightpurchase.PurchaseParams at java.lang.Class.classForName(Native Method) at java.lang.BootClassLoader.findClass(ClassLoader.java:781) at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at java.lang.Class.classForName(Native Method) at java.lang.Class.forName(Class.java:324) at android.os.Parcel.readParcelableCreator(Parcel.java:2404) at android.os.Parcel.readParcelable(Parcel.java:2358) at android.os.Parcel.readValue(Parcel.java:2264) at android.os.Parcel.readArrayMapInternal(Parcel.java:2614) at android.os.BaseBundle.unparcel(BaseBundle.java:221) at android.os.BaseBundle.getString(BaseBundle.java:920) at android.content.Intent.getStringExtra(Intent.java:6195) at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:2699) at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:2161) at com.android.server.am.ActivityManagerService.startActivityInPackage(ActivityManagerService.java:6877) at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:310) at com.android.server.am.ActivityManagerService.startActivityIntentSender(ActivityManagerService.java:6635) at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:292) at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3991) at android.os.Binder.execTransact(Binder.java:453) Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
我仍然可以通过与购买,所以我按下购买按钮,然后用我的Paypal/CC购买应用内购买。我得到在Android监视器以下错误:
E/Volley: [4116] c.a: Unexpected response code 500 for https://android.clients.google.com/fdfe/ees/commitPurchase
我检查许可证代码,您从谷歌开发者控制台中看到当点击应用程序并导航到服务和API时,该代码也与我在应用程序中使用的代码相同。
有人有想法如何解决这个问题?