بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل در پرداخت درون برنامه بصورت مصرفی
سلام دوستان، وقت بخیر.
کسی می تونه کمک کنه مشکل این کد کجاس؟ وقتی روی 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 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .