2013-08-18 17 views
5

Mein onIabPurchaseFinishedListener wird nie aufgerufen, obwohl ich auf den Kauf jetzt im InApp-Dialog klicke, der Logcat druckt nichts.onIabPurchaseFinishedListener wird nie aufgerufen

public class CreateAlbumActivity extends Activity { 
IabHelper mHelper; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_create_album); 
     mHelper = new IabHelper(this, Global.inapp); 

    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { 
      public void onIabSetupFinished(IabResult result) { 
       if (!result.isSuccess()) { 
       // Oh noes, there was a problem. 
       // AlertDialogHelper.CreateNormalDialog(context, "Failed to set In-App Billing: " +result); 
       Log.d(Global.TAG, "Problem setting up In-app Billing: " + result); 
       return; 
       }    
       // Hooray, IAB is fully set up! 

      } 
     }); 
    } 
public void createAlbumEvent(){ 

        mHelper.launchPurchaseFlow(CreateAlbumActivity.this, "android.test.purchased", 10001, 
          mPurchaseFinishedListener, "bGoa+V7g/yqDXvKRqq"); 


    } 
    IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener 
    = new IabHelper.OnIabPurchaseFinishedListener() { 
    public void onIabPurchaseFinished(IabResult result, Purchase purchase) 
    { 
     if (result.isFailure()) { 
      Log.d(Global.TAG, "Error purchasing: " + result); 
      return; 
     }  
     Log.d(Global.TAG, "SUCCESS PURCHASE!"); 
    } 
    }; 
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     Log.d(Global.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(Global.TAG, "onActivityResult handled by IABUtil."); 
     } 
    } 
} 

Antwort

8

Okay, so dass nach Stunden über Stunden verbringen zu versuchen, dieses Problem zu lösen, stieß ich auf die folgende Antwort: https://stackoverflow.com/a/17411617/1203043

Das Problem war, dass meine Tätigkeit eine Fahne von „keine Geschichte“ hat. Wenn ich diese Markierung von der Aktivität entferne, funktioniert es gut. Ich habe wirklich keine Ahnung, warum es passiert, aber hier ist es.

Ich hoffe, ihr geht nie durch den Albtraum, den ich durchgemacht habe.

3

Ich fand den folgenden Link hilfreich: onIabPurchaseFinished never called.

Das Problem ist, dass die Aktivität nicht richtig handhaben onActivityResult und es gibt keine Erwähnung in dem In-App-Einkauf Tutorial.

+0

Dank! das hat mich gerettet .. – afadfadf

Verwandte Themen