In-app purchase android

314
21 мая 2017, 21:31

Здравствуйте.Внедрил гугловский пример для покупок в приложении TrivialDrive в свое приложение. 1.Например если на устройстве нет маркета то приложение вылетает решил так:

mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
        public void onIabSetupFinished(IabResult result) {
            Log.i(TAG, "Setup finished.");
            // Have we been disposed of in the meantime? If so, quit.
            if (mHelper == null || result.isFailure()) {
                complain("Problem setting up in-app billing: " + result);
                error = true;
                return;
            }
            error = false;
            mBroadcastReceiver = new IabBroadcastReceiver(MainActivity.this);
            IntentFilter broadcastFilter = new IntentFilter(IabBroadcastReceiver.ACTION);
            registerReceiver(mBroadcastReceiver, broadcastFilter);
            // IAB is fully set up. Now, let's get an inventory of stuff we own.
            Log.i(TAG, "Setup successful. Querying inventory.");
            try {
                mHelper.queryInventoryAsync(mGotInventoryListener);
                Log.i(TAG,"Восстанавливаем покупки");
            } catch (IabHelper.IabAsyncInProgressException e) {
                complain("Error querying inventory. Another async operation in progress.");
            }
        }
    });

т.е. добавил переменную error, и где нужно проверяю.Хотя смотрел дизассемблированный код так там вроде нет переменых да и проблем тоже.

2.Открыл приложение свое, останавил маркет.В другом приложении при нажатии на купить просто нет окна покупки пока не включишь маркет, у меня же вылетает

        try {
        if(!error)
            mHelper.launchPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST, mPurchaseFinishedListener, payload);
    } catch (IabHelper.IabAsyncInProgressException e) {
        complain("Error launching purchase flow. Another async operation in progress.");
    }

с ошибкой

05-20 12:30:34.376 4958-4958/? E/AndroidRuntime: FATAL EXCEPTION: main
                                             Process: com.mytestapk.mytestapk, PID: 4958
                                             java.lang.IllegalStateException: Could not execute method for android:onClick
                                                 at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
                                                 at android.view.View.performClick(View.java:4438)
                                                 at android.view.View$PerformClick.run(View.java:18422)
                                                 at android.os.Handler.handleCallback(Handler.java:733)
                                                 at android.os.Handler.dispatchMessage(Handler.java:95)
                                                 at android.os.Looper.loop(Looper.java:136)
                                                 at android.app.ActivityThread.main(ActivityThread.java:5017)
                                                 at java.lang.reflect.Method.invokeNative(Native Method)
                                                 at java.lang.reflect.Method.invoke(Method.java:515)
                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
                                                 at dalvik.system.NativeStart.main(Native Method)
                                              Caused by: java.lang.reflect.InvocationTargetException
                                                 at java.lang.reflect.Method.invokeNative(Native Method)
                                                 at java.lang.reflect.Method.invoke(Method.java:515)
                                                 at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
                                                 at android.view.View.performClick(View.java:4438at android.view.View$PerformClick.run(View.java:18422at android.os.Handler.handleCallback(Handler.java:733at android.os.Handler.dispatchMessage(Handler.java:95at android.os.Looper.loop(Looper.java:136at android.app.ActivityThread.main(ActivityThread.java:5017at java.lang.reflect.Method.invokeNative(Native Methodat java.lang.reflect.Method.invoke(Method.java:515at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595at dalvik.system.NativeStart.main(Native MethodCaused by: java.lang.NullPointerException
                                                 at com.mytestapk.mytestapk.util.IabHelper.launchPurchaseFlow(IabHelper.java:453)
                                                 at com.mytestapk.mytestapk.util.IabHelper.launchPurchaseFlow(IabHelper.java:398)
                                                 at com.mytestapk.mytestapk.MainActivity.BuyNowPremium(MainActivity.java:198)
                                                 at java.lang.reflect.Method.invokeNative(Native Methodat java.lang.reflect.Method.invoke(Method.java:515at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288at android.view.View.performClick(View.java:4438at android.view.View$PerformClick.run(View.java:18422at android.os.Handler.handleCallback(Handler.java:733at android.os.Handler.dispatchMessage(Handler.java:95at android.os.Looper.loop(Looper.java:136at android.app.ActivityThread.main(ActivityThread.java:5017at java.lang.reflect.Method.invokeNative(Native Methodat java.lang.reflect.Method.invoke(Method.java:515at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595at dalvik.system.NativeStart.main(Native Method

Кто знает как решить данные проблемы?

READ ALSO
Не уверен в мощности JSON

Не уверен в мощности JSON

На Java надо написать прогруммку, которая забьет текстовый файл инфой в формате Json40000 Json обьектов, в каждом примерно 1000 символов

293
Как заморозить нить (Thread) извне?

Как заморозить нить (Thread) извне?

Если мы создаем нить, то можем заморозить ее на время в методе run, но каким образом мы можем остановить ее на время извне?

291
libgdx textField границы для текста

libgdx textField границы для текста

Как можно установить границы для текста? Откуда будет начинаться текста и до куда? Текст пересекает рамку, которая поставлена как задний...

426
Запрос прав Android 6.0

Запрос прав Android 6.0

Есть ли возможность как-то проще работать с runtime разрешениями в Android 60 и выше? Сейчас приходится делать как в этой статье и даже для одного...

259