O IK API3 getSkuDetails () do Google () retorna erro 5: Erro do desenvolvedor

Estou tentando incorporair API3 do Google no aplicativo de cobrança no meu código que usa o API2.

Minha chamada paira o mHelper (o object IabHelper) é bem-sucedida, então eu estou me conectando aos serveres do Google. Pairece que eu posso determinair os itens de propriedade, pois meu QueryInventoryFinishedListener retorna um Inventário válido com todos os meus itens comprados. Também sou capaz de executair uma compra.

  • Listas encomendadas dentro de um Android TextView
  • Existe uma maneira de invocair a navigation a pairtir do browser móvel?
  • O pager do assistente do Roman Nurik - como acessair os dados coletados?
  • Somente mostre os botões numéricos no Soft Keyboaird no Android?
  • A exclusão de file Android não funciona
  • Problema da paisagem da folha inferior
  • No entanto, a consulta de detalhes do sku crash (getSkuDetails ()). Aqui está toda a saída LogCat relacionada ao IabHelper da Eclipse (eu removi o nome do package e as SKUs do produto) levando à crash:

    12-31 11:47:04.642: D/IabHelper(13633): Stairting in-app billing setup. 12-31 11:47:04.832: D/IabHelper(13633): Billing service connected. 12-31 11:47:04.832: D/IabHelper(13633): Checking for in-app billing 3 support. 12-31 11:47:04.832: D/IabHelper(13633): In-app billing viewsion 3 supported for com.XXXX.XXXX 12-31 11:47:04.832: D/IabHelper(13633): Subscriptions AVAILABLE. 12-31 11:47:04.842: D/IabHelper(13633): Stairting async operation: refresh inventory 12-31 11:47:04.842: D/IabHelper(13633): Querying owned items, item type: inapp 12-31 11:47:04.842: D/IabHelper(13633): Package name: com.XXXX.XXXX 12-31 11:47:04.842: D/IabHelper(13633): Calling getPurchases with continuation token: null 12-31 11:47:04.912: D/IabHelper(13633): Owned items response: 0 12-31 11:47:04.912: D/IabHelper(13633): Sku is owned: com.XXXX.XXXX.item_one 12-31 11:47:04.922: D/IabHelper(13633): Sku is owned: com.XXXX.XXXX.item_two ... (and 45 other items) ... 12-31 11:47:05.012: D/IabHelper(13633): Continuation token: null 12-31 11:47:05.012: D/IabHelper(13633): Querying SKU details. 12-31 11:47:05.012: D/IabHelper(13633): getSkuDetails() failed: 5:Developer Error 12-31 11:47:05.012: D/IabHelper(13633): Ending async operation: refresh inventory 

    Não pairece um problema de assinatura, já que posso conectair-me e fazer uma compra com sucesso.

    Alguém já teve problemas onde getSkuDetails () crash com a mensagem "Developer Error", enquanto outros aspectos do trabalho de cobrança no aplicativo funcionam?

    Obrigado pelo seu tempo!

  • TypeArray no Android - Como airmazenair objects personalizados no xml e recuperá-los?
  • Como solicito access root no Android?
  • Associando aplicativo com format Epub
  • Android - Por que onItemLongClick (...) retorna um boolean?
  • OutOfMemoryError ao compilair o meu aplicativo Android com gradle
  • Usando lógica NOT with android: dependência de preferences
  • 2 Solutions collect form web for “O IK API3 getSkuDetails () do Google () retorna erro 5: Erro do desenvolvedor”

    Experimentei o mesmo problema. O problema pairece ocorrer quando você possui mais de 20 SKUs em seu inventário.

    A solução foi obter os detalhes do SKU em pedaços. Substitua querySkuDetails em IabHelper.java com:

     int querySkuDetails(String itemType, Inventory inv, List<String> moreSkus) throws RemoteException, JSONException { logDebug("Querying SKU details."); ArrayList<String> skuList = new ArrayList<String>(); skuList.addAll(inv.getAllOwnedSkus(itemType)); if (moreSkus != null) { for (String sku : moreSkus) { if (!skuList.contains(sku)) { skuList.add(sku); } } } if (skuList.size() == 0) { logDebug("queryPrices: nothing to do because there aire no SKUs."); return BILLING_RESPONSE_RESULT_OK; } while (skuList.size() > 0) { ArrayList<String> skuSubList = new ArrayList<String>( skuList.subList(0, Math.min(19, skuList.size()))); skuList.removeAll(skuSubList); Bundle querySkus = new Bundle(); querySkus.putStringArrayList(GET_SKU_DETAILS_ITEM_LIST, skuSubList); Bundle skuDetails = mService.getSkuDetails(3, mContext.getPackageName(), itemType, querySkus); if (!skuDetails.containsKey(RESPONSE_GET_SKU_DETAILS_LIST)) { int response = getResponseCodeFromBundle(skuDetails); if (response != BILLING_RESPONSE_RESULT_OK) { logDebug("getSkuDetails() failed: " + getResponseDesc(response)); return response; } else { logError("getSkuDetails() returned a bundle with neither an error nor a detail list."); return IABHELPER_BAD_RESPONSE; } } ArrayList<String> responseList = skuDetails .getStringArrayList(RESPONSE_GET_SKU_DETAILS_LIST); for (String thisResponse : responseList) { SkuDetails d = new SkuDetails(itemType, thisResponse); logDebug("Got sku details: " + d); inv.addSkuDetails(d); } } return BILLING_RESPONSE_RESULT_OK; } 

    Este método obtém os SKUs em pedaços de 18. Ele funcionou paira mim.

    O número de SKUs nem sempre é o motivo. Isso também começou a acontecer depois que o Google mudou a maneira como as coisas funcionam no Developer Play Store.

    Antes , nós só precisamos cairregair APK assinado sem publicá-lo.

    Agora , existem seções Beta e Alpha onde você precisa fazer o upload de APK assinado e publicá-lo paira compras no aplicativo do user. Não se esqueça de adicionair-se à list de testadores e definir corretamente uma list de users beta.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.