2013-08-18 4 views
5

私のonIabPurchaseFinishedListenerが呼び出されることはありません。inappダイアログでbuyをクリックしても、logcatは何も表示しません。onIabPurchaseFinishedListenerが呼び出されない

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."); 
     } 
    } 
} 

答えて

8
よし

ので、この問題を解決しようと約時間以上の時間を過ごした後、私は次のような答えに出くわした:https://stackoverflow.com/a/17411617/1203043

問題は、私の活動が「NO HISTORY」の旗を持っているということでした。このフラグをアクティビティから削除すると、正常に動作します。私は本当になぜそれが起こるのか分からないが、ここにある。

あなたは私が行った悪夢を通らないことを願っています。

3

私は、次のリンクが役に立ったと評価してい: onIabPurchaseFinished never called.

問題は活動が正しくonActivityResult処理されないということであるとはアプリの購入チュートリアルでは、それについての言及はありません。

+0

THanks!これは私を救った.. – afadfadf

関連する問題