2017-05-26 105 views
1

我目前正在開發一款遊戲並嘗試實施Google Play的應用內結算V3。我遵循了應用內示例,並使用IabHelper。但是,在設備中運行應用程序時,出現問題。我發現在mHelper.startSetup之後,onServiceDisconnectedonServiceConnected都沒有被調用。所以我將mContext.bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE);的結果打印在IabHelper類中。結果是false使用IabHelper時無法綁定InAppBillingService

這裏是我的代碼:

private IabHelper mHelper; 

// MainActivity onCreate 
protected void onCreate(Bundle savedInstanceState){ 
    // ... 
    mHelper = new IabHelper(this, base64EncodedPublicKey); 
    mHelper.enableDebugLogging(true); 
    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { 
     public void onIabSetupFinished(IabResult result) { 
      if (!result.isSuccess()) { 
       return; 
      } 

      if (mHelper == null) return; 
     } 
    }); 
} 

而且在方法IabHelper類startSetup

public void startSetup(final OnIabSetupFinishedListener listener) { 
     // ... 
     Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND"); 
     serviceIntent.setPackage("com.android.vending"); 
     if (!mContext.getPackageManager().queryIntentServices(serviceIntent, 0).isEmpty()) { 
      // service available to handle that Intent 
      boolean bRes = mContext.bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE); 
      // ### I printed the result here it was false 
      Log.i("IAB", "IAB Service Result = " + bRes); 
     } 
     else { 
      // no service available to handle that Intent 
      if (listener != null) { 
       listener.onIabSetupFinished(
         new IabResult(BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE, 
         "Billing service unavailable on device.")); 
      } 
     } 
} 

我不知道這個問題。我已經做了:

  • 添加權限:com.android.vending.BILLING
  • 從樣品.aidl文件複製到/ src目錄/ COM /安卓/自動售貨機/計費
  • 我的Android設置爲Android的目標-22

任何想法有什麼不對? 在此先感謝。

回答

0

從util的文件夾中複製所有類從項目「破」 也可以全的Util包複製到您的項目。然後試一試。

+0

是的,我以前做過這個工作。我將「Trival」項目的util文件夾複製到我的文件夾中,並將其重命名爲包名稱。 – Sudo

1

最後,我通過將最新版本的遊戲上傳到開發者控制檯並調試最新的apk來解決它。問題沒有了。希望這可以幫助某人。

0

我有這個問題,並發現,調試

  1. 的應用程序版本必須與在開發者控制檯發佈的版本。
  2. 播放服務需要可用,有些手機實際上可能會在屏幕鎖定後終止服務,開始播放商店,然後重新執行綁定。
  3. 使用IabHelper開箱可能會觸發問題,如未處理服務斷開連接,重新初始化失敗,我不得不對其進行修改。