آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در پرداخت درون برنامه بصورت مصرفی

Ebrahimgh1986  10 سال پیش  10 سال پیش
0 0

سلام دوستان، وقت بخیر.

کسی می تونه کمک کنه مشکل این کد کجاس؟ وقتی روی Button کلیک می کنم. ارور Null Pointer Exception میده!

 public class BuyActivity extends Activity {
 
    private static final String TAG                    = "LOG";
    private static final String SKU_PREMIUM            = "500Coins";
    private boolean             mIsPremium             = false;
    private IabHelper           mHelper;
    public static final String  base64EncodedPublicKey = billing.rsaKey;
    protected Inventory         inventory;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);

        setContentView(R.layout.buy_board);

        Button btn500point = (Button) findViewById(R.id.btn500point);
              
        mHelper = new IabHelper(this, base64EncodedPublicKey);

        final IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {

            public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
                Log.d(TAG, "Query inventory finished.");
                if (result.isFailure()) {
                    Log.d(TAG, "Failed to query inventory: " + result);
                    return;
                }
                else {
                    Log.d(TAG, "Query inventory was successful.");
                    // does the user have the premium upgrade?
                    mIsPremium = inventory.hasPurchase(SKU_PREMIUM);

                    // update UI accordingly

                    Log.d(TAG, "User is " + (mIsPremium ? "PREMIUM" : "NOT PREMIUM"));
                }

                Log.d(TAG, "Initial inventory query finished; enabling main UI.");
            }
        };

        final IabHelper.OnConsumeFinishedListener mConsumeFinishedListener =
                new IabHelper.OnConsumeFinishedListener() {

                    public void onConsumeFinished(Purchase purchase, IabResult result) {
                        if (result.isSuccess()) {
                            // provision the in-app purchase to the user
                            // (for example, credit 50 gold coins to player's character)
                        }
                        else {
                            // handle error
                        }
                    }
                };

        Log.d(TAG, "Starting setup.");
        mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {

            public void onIabSetupFinished(IabResult result) {
                Log.d(TAG, "Setup finished.");

                if ( !result.isSuccess()) {
                    // Oh noes, there was a problem.
                    Log.d(TAG, "Problem setting up In-app Billing: " + result);
                }
                // Hooray, IAB is fully set up!
                mHelper.queryInventoryAsync(mGotInventoryListener);
            }
        });

        btn500point.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
mHelper.consumeAsync(inventory.getPurchase(billing.sku_500coins), mConsumeFinishedListener);
} }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Log.d(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data); // Pass on the activity result to the helper for handling if ( !mHelper.handleActivityResult(requestCode, resultCode, data)) { super.onActivityResult(requestCode, resultCode, data); } else { Log.d(TAG, "onActivityResult handled by IABUtil."); } } @Override public void onDestroy() { super.onDestroy(); if (mHelper != null) mHelper.dispose(); mHelper = null; } }
+1 0
کدوم قسمت؟ حدس میزنم قبل از برقراری کامل ارتباط با بازار دکمه مصرف رو میزنید، ProgressDialog قرار بدید یا دکمه رو بعد برقراری کامل ارتباط فعال کنید. منظورم داخل متد onIabSetupFinished هست. (10 سال پیش)
0 0
ممنون از آقای نصرتی، اون قسمت که بعد از btn500point.setOnClickListener اتفاق میفته، یه جای mHelper.consumeAsync(inventory.getPurchase(billing.sku_500coins), mConsumeFinishedListener); مشکل داره که ارور Null Pointer Exception میده! ولی نمی دونم! (10 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .