2013-10-06 5 views
0

Я искал вокруг часами, пытаясь понять это. Вот что я сделал до сих пор. (Примечание: Я развиваю в Android Studio)IAB setup никогда не завершается

  1. Сформирован подписанную APK и загружены на мой разработчик консоли
  2. сделал продукт в приложение и активировал его
  3. Добавлено разрешения Выставление мой манифест
  4. Расчесывается Стек, чтобы попытаться найти похожие проблемы.

В основном в logcat Я вижу, что IABHelper запускает настройку, но никогда не завершается в любое время. (Слушатель никогда не получает обратный вызов)

private static final String TAG = "Preference Activity"; 
private static final String SKU_PRO = "desk.clock.pro.license"; 
static final int RC_REQUEST = 10001; 
IabHelper mHelper; 
private boolean mIsPremium; 
private ArrayList<Preference> proSettings; 
IInAppBillingService mService; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.preferences); 
    bindService(new 
      Intent("com.android.vending.billing.InAppBillingService.BIND"), 
      mServiceConn, Context.BIND_AUTO_CREATE); 
    proSettings = new ArrayList<Preference>(); 
    ActionBar b = getActionBar(); 
    b.setDisplayHomeAsUpEnabled(true); 
    colorListener(); 
    textureListener(); 
    bgColorListener(); 
    onPresetListener(); 
    gradListener(); 


    String base64Key = "[my key from dev console]"; 
    bindService(new 
      Intent("com.android.vending.billing.InAppBillingService.BIND"), 
      mServiceConn, Context.BIND_AUTO_CREATE); 
    mHelper = new IabHelper(this, base64Key); 
    mHelper.enableDebugLogging(true); 
    Log.d(TAG, "Starting setup"); 
    mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { 
     public void onIabSetupFinished(IabResult result) { 
      if (!result.isSuccess()) { 
       // Oh noes, there was a problem. 
       Log.d(TAG, "Problem setting up In-app Billing: " + result); 
      } 
      Log.d(TAG, "Setting up success"); 

      Log.d(TAG, "querying inventory"); 
      mHelper.queryInventoryAsync(mGotInventoryListener); 
      Log.d(TAG, "queried"); 
     } 
    }); 
IabHelper.QueryInventoryFinishedListener mGotInventoryListener 
     = new IabHelper.QueryInventoryFinishedListener() { 
    public void onQueryInventoryFinished(IabResult result, 
             Inventory inventory) { 

     if (result.isFailure()) { 
      // handle error here 
      mIsPremium = false; 
      disableProAndRevertSettings(); 
     } 
     else { 
      // does the user have the premium upgrade? 
      mIsPremium = inventory.hasPurchase(SKU_PRO); 
      if(mIsPremium) { 
       enableProSettings(); 
      }else { 
       disableProAndRevertSettings(); 
      } 
     } 
    } 
}; 
ServiceConnection mServiceConn = new ServiceConnection() { 
    @Override 
    public void onServiceDisconnected(ComponentName name) { 
     mService = null; 
    } 

    @Override 
    public void onServiceConnected(ComponentName name, 
            IBinder service) { 
     mService = IInAppBillingService.Stub.asInterface(service); 
    } 
}; 
//rest of my activity 

я получаю эту строку в моей LogCat, но никогда ничего после этого 10-06 15: 46: 44,485 20787-20787/com.ssa.digitaldeskclock D/IabHelper: Начало настройка биллинга в приложении.

+1

Вы тестируете на самом устройстве? Это не будет работать на эмуляторе. – Tenfour04

+0

Да, Ive тестировал мой HTC тот, который зарегистрирован в той же учетной записи, что и моя учетная запись разработчика. – Stephen

ответ

0

Проблема была устранена путем получения новой версии всех классов утилиты для образца IAB v3. Я добавил все новые файлы в свой каталог util, и он прошел безупречно. Надеюсь, это поможет кому-то другому. См. Ссылку на источник https://code.google.com/p/marketbilling/source/browse/v3/src/com/example/android/trivialdrivesample/util/IabHelper.java?r=5f6b7abfd0534acd5bfc7c14436f4500c99e0358

Смежные вопросы