2013-01-19 19 views
11

का कारण बनता है त्रुटि ये कदम उठाएँ है:एंड्रॉइड इनएप बिलिंग V3 उदाहरण का उपयोग करना। मारो खरीदें, बैक बटन, और फिर से खरीदना

  1. बिल्ड और InApp वी 3 नमूना तुच्छ ड्राइव उदाहरण
  2. खरीद विकल्प
  3. वापस बटन चलाने का चयन करें मारो
  4. जनवरी 2013 के रूप में संस्करण में फिर से

खरीदने के लिए प्रयास करें आप संभवतः प्राप्त करेंगे

एसिंक ऑपरेशन (लॉन्च खरीददारी फ्लो) शुरू नहीं कर सकता क्योंकि एक और async ऑपरेशन (लॉन्च खरीददारी फ्लो) प्रगति पर है।

तो फिर तुम, IabHelper वर्ग की खरीद या सूची तरीकों का उपयोग नहीं कर सकते async ध्वज के बाद से खत्म नहीं होगा, जब तक कि आप अपने आवेदन मार डालते हैं।

यहाँ एक संभव समाधान है:

मैं flagEndAsync विधि सार्वजनिक कर दिया और onRestart विधि में यह कहा जाता है। प्रश्न हैं: क्या यह एक सुरक्षित समाधान है? और क्या किसी और ने इस मुद्दे को देखा है?

यहाँ मैं क्या जोड़ा है:

protected void onRestart() { 
    super.onRestart(); 
    if (mHelper != null) mHelper.flagEndAsync(); 
} 

उत्तर

36

क्या आप वाकई निम्न कोड को नहीं निकाला, (या अपनी गतिविधि में जोड़ने के लिए भूल गया) कर रहे हैं

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent 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); 
     } 
    } 
+0

वाह, धन्यवाद। मुझे वह हिस्सा याद आया। मैंने इसे विलय कर दिया और ऐसा लगता है कि यह सही है। एक बार फिर धन्यवाद! –

+2

अगर मैं इसे एक से अधिक बार वोट दे सकता हूं - मैं चाहता हूं। इतनी अविश्वसनीय रूप से उपयोगी और मैंने जो कुछ भी पढ़ा है उसमें दस्तावेज नहीं किया। –

+1

मुझे एक ही समस्या का सामना करना पड़ रहा है जिसका मैं उपयोग कर रहा हूं ** android.test.purchased ** लेकिन 'atActivityResult()' आइटम को खरीदे जाने के बाद भी बुलाया नहीं गया था, तो उस मामले में इस अपवाद को कैसे संभालें जब उपयोगकर्ता कोशिश करें पहले से खरीदे गए आइटम को खरीदने के लिए –