web-dev-qa-db-ja.com

Android inventory.getSkuDetails()がnullを返す

こんにちは私は私のアプリにアプリ購入を追加しようとしています私はアクティブに設定されている開発者コンソールで自分のアプリ内購入を設定しました私はそれから彼らに質問しました昨日完全に働いていました私はすべての詳細を取得しましたが今日は戻ってきますnullとして。変更された唯一のことは、アプリをアンインストールして再実行する必要があったことです。アプリと開発者コンソールの両方でskusを確認しましたが、IabHelper start setupを実行したときに正確に一致するため、OKの結果が得られます。次に、IabHelper.QueryInventoryFinishedListenerを呼び出します。結果は問題ありませんが、インベントリから何かにアクセスしようとすると、nullとして返されます。なぜ誰か知っていますか?または、コードで何か間違っているのですか?

私のCreate();

mHelper = new IabHelper(this, base64EncodedPublicKey);
        mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
               public void onIabSetupFinished(IabResult result) {
                  if (!result.isSuccess()) {
                     // Oh noes, there was a problem.
                     Log.v("Menu", "Problem setting up In-app Billing: " + result);
                  }            
                     // Hooray, IAB is fully set up!  
                  Log.v("Menu", "INAPP BILLING SETUP COMPLETE: " + result);
                  ArrayList<String> skuList = new ArrayList<String> ();
                    skuList.add("myapp.consumable.inapppurchase_id_1");
                    skuList.add("myapp.consumable.inapppurchase_id_2");
                    skuList.add("myapp.consumable.inapppurchase_id_3");
                    skuList.add("myapp.permanant.inapppurchase_id_6");
                    skuArray = new JSONArray(skuList);

                    mHelper.queryInventoryAsync(true, skuList, mQueryFinishedListener);

               }
        });

次に、QueryListenerのコードをここに表示します

IabHelper.QueryInventoryFinishedListener mQueryFinishedListener = new IabHelper.QueryInventoryFinishedListener() {
       public void onQueryInventoryFinished(IabResult result, Inventory inventory)   
       {
          if (result.isFailure()) {
              Log.v("Menu", "RESULT FALIURE");
             return;
           }

      Log.v("Menu", "this +" + skuArray);
      Log.v("Menu", "Inventory +" + inventory);
      for(int i = 0; i < skuArray.length(); i++){
          try {
             String SKU = skuArray.getString(i);

             if(inventory.getSkuDetails(SKU) != null){
                 Log.v("Menu", "SKU = " + SKU);
                 Log.v("Menu", "SKU" + SKU + "= " + inventory.getSkuDetails(SKU));

                 updateProductData("price",inventory.getSkuDetails(SKU).getPrice(),i);
                 updateProductData("id",inventory.getSkuDetails(SKU).getSku(),i);


             }else{
                 Log.v("Menu", "SKU RETURNED NULL" + SKU); 
             }



        } catch (JSONException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


      }

   }
}; 
23
Luke Batley

この問題についてGoogleに話しかけました。また、アプリの購入を追加する前にAPKを公開する必要がある変更を加えたため、APKをアルファ版テストチャネルにアップロードして公開することを推奨している(ドラフトモードではない)とのことです。

試してみて、うまくいけばフィードバックします

26
Luke Batley

Google PlayにアルファAPKを公開した後、請求が再び機能し始めました。

3
Json