मैं अपने अनुप्रयोग में अनुप्रयोग खरीद में लागू कर दिया है मैं इन-एप्लिकेशन बिलिंग का संस्करण 3 के लिए "TrivialDrive" उदाहरण का इस्तेमाल किया है के बाद दुर्घटनाग्रस्त, मैं अपेक्षा के अनुरूप स्थिर प्रतिक्रियाओं सभी कार्यों का उपयोग करके एप्लिकेशन का परीक्षण किया है।एंड्रॉयड एप्लिकेशन के अंतर्गत खरीदी भुगतान
लेकिन जब मैं बाजार, सफल खरीद पर अनुप्रयोग क्रैश से एप्लिकेशन डाउनलोड,
मेरे कोड सफल खरीद की है
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
Log.d(TAG, "Purchase finished: " + result + ", purchase: " + purchase);
if (result.isFailure()) {
complain("Error purchasing: " + result);
}
if (purchase != null) {
if (purchase.getSku().equals(Constants.IN_APP_PURCHASE_PRODUCT_ID)) {
// bought the premium upgrade!
String message = getResources().getString(R.string.app_purchase_successful_msg);
mIsPremium = true;
updateUi(mIsPremium);
successAlert(message);
}
}
}
};
मैं सफल खरीद पर संदेश की स्थापना की है, लेकिन मैं नहीं कर सकते यह संदेश दिखाई दे, (जिसका मतलब है कि वे लिस्से निष्पादित नहीं कर रहे हैं) जब मैंने सफलतापूर्वक इसे खरीदा, तो सफल भुगतान के बाद आवेदन क्रैश हो गया।
जब ऐप को फिर से लॉन्च करें और आइटम खरीदने का प्रयास करें तो यह पहले से ही खरीदा गया है।
मुझे डेवलपर कंसोल से क्रैश रिपोर्ट मिली।
02-09 02:01:13.181: E/AndroidRuntime(11530): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=10001, result=-1, data=Intent { (has extras) }} to activity {com.eknathkadam.grammaruplite/com.webrich.base.ui.GoogleInAppPurchaseActivity}: java.lang.NullPointerException
02-09 02:01:13.181: E/AndroidRuntime(11530): at android.app.ActivityThread.deliverResults(ActivityThread.java:3141)
02-09 02:01:13.181: E/AndroidRuntime(11530): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3184)
02-09 02:01:13.181: E/AndroidRuntime(11530): at android.app.ActivityThread.access$1100(ActivityThread.java:130)
02-09 02:01:13.181: E/AndroidRuntime(11530): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1243)
02-09 02:01:13.181: E/AndroidRuntime(11530): at android.os.Handler.dispatchMessage(Handler.java:99)
02-09 02:01:13.181: E/AndroidRuntime(11530): at android.os.Looper.loop(Looper.java:137)
02-09 02:01:13.181: E/AndroidRuntime(11530): at android.app.ActivityThread.main(ActivityThread.java:4745)
02-09 02:01:13.181: E/AndroidRuntime(11530): at java.lang.reflect.Method.invokeNative(Native Method)
02-09 02:01:13.181: E/AndroidRuntime(11530): at java.lang.reflect.Method.invoke(Method.java:511)
02-09 02:01:13.181: E/AndroidRuntime(11530): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
02-09 02:01:13.181: E/AndroidRuntime(11530): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-09 02:01:13.181: E/AndroidRuntime(11530): at dalvik.system.NativeStart.main(Native Method)
**02-09 02:01:13.181: E/AndroidRuntime(11530): Caused by: java.lang.NullPointerException
02-09 02:01:13.181: E/AndroidRuntime(11530): at com.google.billing.Base64.decode(Base64.java:434)**
02-09 02:01:13.181: E/AndroidRuntime(11530): at com.google.billing.Security.generatePublicKey(Security.java:87)
02-09 02:01:13.181: E/AndroidRuntime(11530): at com.google.billing.Security.verifyPurchase(Security.java:66)
02-09 02:01:13.181: E/AndroidRuntime(11530): at com.google.billing.IabHelper.handleActivityResult(IabHelper.java:437)
02-09 02:01:13.181: E/AndroidRuntime(11530): at com.webrich.base.ui.GoogleInAppPurchaseActivity.onActivityResult(GoogleInAppPurchaseActivity.java:238)
02-09 02:01:13.181: E/AndroidRuntime(11530): at android.app.Activity.dispatchActivityResult(Activity.java:5192)
02-09 02:01:13.181: E/AndroidRuntime(11530): at android.app.ActivityThread.deliverResults(ActivityThread.java:3137)
02-09 02:01:13.181: E/AndroidRuntime(11530): ... 11 more
02-09 02:02:20.610: E/JavaBinder(250): !!! FAILED BINDER TRANSACTION !!!
02-09 02:02:20.638: E/MountService(250): Listener dead
02-09 02:02:20.638: E/MountService(250): Listener dead
02-09 02:02:22.028: E/InputDispatcher(250): channel '41f313f0 com.android.vending/com.android.vending.AssetBrowserActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
02-09 02:03:59.884: E/PowerManagerService(250): Excessive delay setting brightness: 198ms, mask=2
इसके onActivityResult() इस लाइन
if (!mHelper.handleActivityResult(requestCode, resultCode, data))
विधि इस
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data);
// Pass on the activity result to the helper for handling
if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {
// not handled, so handle it ourselves (here's where you'd
// perform any handling of activity results not related to in-app
// billing...
super.onActivityResult(requestCode, resultCode, data);
} else {
Log.d(TAG, "onActivityResult handled by IABUtil.");
}
}
यह स्थिर प्रतिक्रिया लेकिन मैं जब पर दुर्घटनाओं पर पूरी तरह से ठीक काम करता है की तरह है पर विधि में अशक्त सूचक अपवाद फेंक बाजार से खरीद
मुझे कल से ही एक ही समस्या का सामना करना पड़ रहा है। मुझे आशा है कि मुझे यहां कुछ समाधान मिलेगा। –
मुझे कल से ही इस समस्या का सामना करना पड़ रहा है, नहीं पता कि – Goofy
@MehulJoisar आपने अपना ऐप कब अपलोड किया है? – Goofy