Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 随着Gluonhq魅力的下降,如何将其InAppBillingService与Google Play服务器集成并测试?_Android_Javafx_Google Play_Gluon Mobile_Android Billing - Fatal编程技术网

Android 随着Gluonhq魅力的下降,如何将其InAppBillingService与Google Play服务器集成并测试?

Android 随着Gluonhq魅力的下降,如何将其InAppBillingService与Google Play服务器集成并测试?,android,javafx,google-play,gluon-mobile,android-billing,Android,Javafx,Google Play,Gluon Mobile,Android Billing,我已经创建了一个Android版本,现在包括Gluonhq InAppBillingService,用于在Google Play Store下购买我的应用程序 此版本加载到Google Play开发者控制台。 一个测试人员(我自己和另一个gmail帐户)可以从Google Play Store加载这个apk版本并安装它。 我用adb在手机上运行它,以捕获一些调试跟踪,特别是关于计费API调用的跟踪 测试结果:PlayerService存在,但从未准备就绪。这是什么意思 提前谢谢 详细信息: -

我已经创建了一个Android版本,现在包括Gluonhq InAppBillingService,用于在Google Play Store下购买我的应用程序

此版本加载到Google Play开发者控制台。
一个测试人员(我自己和另一个gmail帐户)可以从Google Play Store加载这个apk版本并安装它。
我用adb在手机上运行它,以捕获一些调试跟踪,特别是关于计费API调用的跟踪

测试结果:PlayerService存在,但从未准备就绪。这是什么意思

提前谢谢


详细信息:
-我输入PlayerService.getInstance()。GetService()。如果存在(服务->{..
-但之后,服务永远不会准备好(直接通过service.isReady()或不通过侦听其更改)

以下是我的代码(traceP只是跟踪调试方法):

关于:
-“InterrogerServeUrleSlicesHg-测试前新值”
-和“Deb updateProductDetailsGPS”

因此,从未调用从Google服务器获取产品详细信息的updateProductDetailsGPS方法


注:
我的公钥似乎在BASE_64_ANDROID_public_key中定义正确

您通常如何使用Google Play server测试此类集成问题?


例如,InAppBillingSample项目是如何完成其计费API(我现在使用的)和Google Play服务器的集成的?

我对Gluonhq一无所知,但Google Play知道。遵循所有步骤是非常值得的。

我的问题不是关于测试过程(我知道的)但是调试两台设备之间的请求/响应的方法:Android手机和远程Google Play服务器。你已经做过这种集成了吗?Google Play支持部门表示,这个问题超出了他们的范围,因为这不是他们的计费解决方案
PlayerService.getInstance().getService().ifPresent(service -> { 
    traceP("interrogerServeurSurLesLicencesHG - before 1st test service ready"); 
    if (service.isReady()) { 
        updateProductDetailsGPS(service); // affecte bLicence_STD_HG_achetee 
    } else { 
        traceP("interrogerServeurSurLesLicencesHG - before 2nd test service ready"); 
        service.readyProperty().addListener(new ChangeListener<Boolean>() { 
        // se synchroniser avec le seveur de license GPS 
        @Override 
        public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) { 
            traceP("interrogerServeurSurLesLicencesHG - before test newValue"); 
            if (newValue) { 
                traceP("interrogerServeurSurLesLicencesHG - when new value"); 
                updateProductDetailsGPS(service); // affecte bLicence_STD_HG_achetee 
                service.readyProperty().removeListener(this); 
            } 
        } 
    }); 
    } 
});

traceP("Fin interrogerServeurSurListeDesProduitsHG - bInterrogationFaiteAvecSucces " + bInterrogationFaiteAvecSucces);
static void updateProductDetailsGPS(InAppBillingService service) { 

    traceP("Deb updateProductDetailsGPS"); 

    BillingGPS.setUpdateStateGPS(StateGPSType.NONE); 
    Worker<List<Product>> productDetails = service.fetchProductDetails(); 
    productDetails.stateProperty().addListener((obs, ov, nv) -> { 
    switch (nv) { 
    case CANCELLED:.....
I/System.out(19417): heure : 157 ms --- interrogerServeurSurLesLicencesHG - billingType: GPS

I/System.out(19417): heure : 162 ms --- interrogerServeurSurLesLicencesHG - before 1st test service ready

I/System.out(19417): heure : 162 ms --- interrogerServeurSurLesLicencesHG - before 2nd test service ready

I/System.out(19417): heure : 163 ms --- Fin interrogerServeurSurListeDesProduitsHG - bInterrogationFaiteAvecSucces false