Мое приложение в приложении покупки продолжает падать

Все идет гладко, пока я не попытаюсь получить SkuDetails. Я сделал все до мельчайших подробностей, о которых говорит гид по Google, но все же не повезло.

Мой продукт "thefullgame" был настроен в Google Dev и также был активирован.

Я загрузил версию моего APK, как сказано в руководстве... (он не должен быть в бета / альфа-версии, верно?)

Мой упрощенный код MainActivity:

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);        

    String base64EncodedPublicKey = "MY_KEY";

    mHelper = new IabHelper(this, base64EncodedPublicKey);

    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
       public void onIabSetupFinished(IabResult result) {
          if (!result.isSuccess()) {

            Gdx.app.log("..", "::Problem : " + result);

         }            

        List<String> additionalSkuList = new ArrayList<String>();
        additionalSkuList.add("thefullgame");

        mHelper.queryInventoryAsync(true, additionalSkuList, mQueryFinishedListener);
       }
   });

}



QueryInventoryFinishedListener 
   mQueryFinishedListener = new QueryInventoryFinishedListener() {
   public void onQueryInventoryFinished(IabResult result, Inventory inventory)   
   {
      if (result.isFailure()) {

          Gdx.app.log("..", "error : " + result );

         return;
       }

      SkuDetails myDetails = inventory.getSkuDetails("thefullgame");

      String fullgamePrice = myDetails.getPrice(); // this is the line it crashes at (line 61)


   }
};

LOGCAT:

08-06 21:41:25.988: D/AndroidRuntime(11130): Shutting down VM
08-06 21:41:25.988: W/dalvikvm(11130): threadid=1: thread exiting with uncaught exception (group=0x41744da0)
08-06 21:41:25.988: E/AndroidRuntime(11130): FATAL EXCEPTION: main
08-06 21:41:25.988: E/AndroidRuntime(11130): Process: com.blabla.blabla, PID: 11130
08-06 21:41:25.988: E/AndroidRuntime(11130): java.lang.NullPointerException
08-06 21:41:25.988: E/AndroidRuntime(11130):    at com.blabla.blabla.MainActivity$2.onQueryInventoryFinished(MainActivity.java:61)
08-06 21:41:25.988: E/AndroidRuntime(11130):    at    com.blabla.blabla.IabHelper$2$1.run(IabHelper.java:630)
08-06 21:41:25.988: E/AndroidRuntime(11130):    at android.os.Handler.handleCallback(Handler.java:733)
08-06 21:41:25.988: E/AndroidRuntime(11130):    at android.os.Handler.dispatchMessage(Handler.java:95)
08-06 21:41:25.988: E/AndroidRuntime(11130):    at android.os.Looper.loop(Looper.java:136)
08-06 21:41:25.988: E/AndroidRuntime(11130):    at android.app.ActivityThread.main(ActivityThread.java:5479)
08-06 21:41:25.988: E/AndroidRuntime(11130):    at java.lang.reflect.Method.invokeNative(Native Method)
08-06 21:41:25.988: E/AndroidRuntime(11130):    at java.lang.reflect.Method.invoke(Method.java:515)
08-06 21:41:25.988: E/AndroidRuntime(11130):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
08-06 21:41:25.988: E/AndroidRuntime(11130):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
08-06 21:41:25.988: E/AndroidRuntime(11130):    at dalvik.system.NativeStart.main(Native Method)

1 ответ

Неплохо было бы опубликовать apk для (по крайней мере) alpha- в противном случае вы, как правило, получаете сообщение об ошибке " эта версия приложения не настроена для выставления счетов через Google Play. Проверьте справочный центр для получения дополнительной информации ".

К сожалению, в IABHelper существует множество ошибок - большинство из них связано с асинхронными методами, но некоторые из них просто глупы, и даже исправление ошибок приводит к появлению ошибок. (В последнем примере исправление, принятое сегодня, заняло около 8 месяцев).

К счастью, большинство проблем было найдено и обсуждено в очереди. Вам нужно будет изучить список и, возможно, решить их самостоятельно. Ваша проблема похожа на описанную здесь. Я не выглядел внимательно, но что-то вроде этого может помочь:

     int queryPurchases(com.blabla.blabla.MainActivity.util.Inventory inv, String itemType) throws JSONException, RemoteException {
+        if (mDisposed) return IABHELPER_UNKNOWN_ERROR;
+        checkNotDisposed();
+        checkSetupDone("queryPurchases");
         // Query purchases

(Если у вас нет mDisposed, возможно, вы не используете самый последний источник. Также убедитесь, что вы опубликовали исправление сегодня.)

Другие вопросы по тегам