2015-01-24 19 views
6

Tôi đang cố gắng tạo bản trình diễn inappbilling. Tôi đã theo dõi điều này tutorial để nghiên cứu điều này.InappBilling Lỗi xác thực là bắt buộc. bạn cần phải đăng nhập vào tài khoản google của mình

Lemme biết các bước tôi đi theo để thực hiện nhiệm vụ này

  1. tôi đã sử dụng mã dưới đây đề cập

    package com.ohn.inappbilling; 
    
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.support.v7.app.ActionBarActivity; 
    import android.util.Log; 
    import android.view.View; 
    import android.widget.Button; 
    
    import com.hello.inappbilling.util.IabHelper; 
    import com.hello.inappbilling.util.IabResult; 
    import com.hello.inappbilling.util.Inventory; 
    import com.hello.inappbilling.util.Purchase; 
    import com.ohn.inappbilling.R; 
    
    public class MainActivity extends ActionBarActivity { 
    
    private static final String TAG = "com.hello.inappbilling"; 
    static final String ITEM_SKU = "com.buttonclick"; 
    IabHelper mHelper; 
    private Button clickButton; 
    private Button buyButton; 
    
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        buyButton = (Button) findViewById(R.id.buyButton); 
        clickButton = (Button) findViewById(R.id.clickButton); 
        clickButton.setEnabled(false); 
        String base64EncodedPublicKey = "******"; 
    
        mHelper = new IabHelper(this, base64EncodedPublicKey); 
    
        mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { 
         public void onIabSetupFinished(IabResult result) { 
          if (!result.isSuccess()) { 
           Log.d(TAG, "In-app Billing setup failed: " + result); 
          } else { 
           Log.d(TAG, "In-app Billing is set up OK"); 
          } 
         } 
        }); 
        //throw new RuntimeException(); 
    } 
    
    public void buttonClicked(View view) { 
        clickButton.setEnabled(false); 
        buyButton.setEnabled(true); 
    } 
    
    public void buyClick(View view) { 
        mHelper.launchPurchaseFlow(this, ITEM_SKU, 10001, 
          mPurchaseFinishedListener, "mypurchasetoken"); 
    } 
    
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, 
        Intent data) 
    { 
         if (!mHelper.handleActivityResult(requestCode, 
           resultCode, data)) {  
         super.onActivityResult(requestCode, resultCode, data); 
         } 
    } 
    
    IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener 
    = new IabHelper.OnIabPurchaseFinishedListener() { 
    public void onIabPurchaseFinished(IabResult result, 
           Purchase purchase) 
    { 
        if (result.isFailure()) { 
         // Handle error 
         return; 
    }  
    else if (purchase.getSku().equals(ITEM_SKU)) { 
        consumeItem(); 
        buyButton.setEnabled(false); 
    } 
    
    } 
    
    
    }; 
    
    public void consumeItem() { 
        mHelper.queryInventoryAsync(mReceivedInventoryListener); 
    } 
    
    IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener 
        = new IabHelper.QueryInventoryFinishedListener() { 
         public void onQueryInventoryFinished(IabResult result, 
          Inventory inventory) { 
    
    
          if (result.isFailure()) { 
          // Handle failure 
          } else { 
           mHelper.consumeAsync(inventory.getPurchase(ITEM_SKU), 
          mConsumeFinishedListener); 
          } 
        } 
    }; 
    
    IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = 
    new IabHelper.OnConsumeFinishedListener() { 
    public void onConsumeFinished(Purchase purchase, 
         IabResult result) { 
    
    if (result.isSuccess()) {     
         clickButton.setEnabled(true); 
    } else { 
         // handle error 
    } 
    } 
    }; 
    
    @Override 
    public void onDestroy() { 
        super.onDestroy(); 
        if (mHelper != null) mHelper.dispose(); 
        mHelper = null; 
    } 
    
    } 
    
  2. Tôi tạo ra apk sử dụng File-Export-AndroidProject và tải lên này trong alphatesting.

  3. tôi thêm người sử dụng (Google nhóm) trong Quản lý danh sách kiểm tra trong thử nghiệm alpha.

  4. tôi đã thêm sản phẩm vào trong ứng dụng sản phẩm và cung cấp cho id để nó com.buttonclick

  5. Trong các thiết lập trong chiếm với thử nghiệm truy cập tôi đã thêm Gmail id ở đây cũng Gmail. Không có id nào là id nhà phát triển.

Bất kỳ ai cũng có thể nói giải pháp cho vấn đề này. Tôi đã thử tất cả các giải pháp có sẵn trên StackoverFlow.

+0

Không biết nếu nó có liên quan nhưng tôi chưa bao giờ thử nghiệm IAB mà không có tài khoản chính/đầu tiên được đặt làm người thử nghiệm, tôi phải đặt lại thiết bị và đặt tài khoản người kiểm tra làm tài khoản chính của thiết bị. – Hacketo

+0

có nghĩa là bạn muốn nói, tôi xóa tất cả tài khoản khỏi điện thoại, sau đó thêm một tài khoản để thử nghiệm, đúng không? –

Trả lời

0

Tôi đã tìm thấy giải pháp cho vấn đề này.

tôi công bố gói ứng dụng này trên playstore và sau đó tôi đã tải về gói ứng dụng từ playstore và chạy đó và Nó hoạt động tốt

Tôi nghĩ lý do đằng sau vấn đề này là Tài khoản google mà tôi đã sử dụng để thử nghiệm có thể không phải là tài khoản chính.

+0

Bạn có thể giải thích những gì bạn sẽ nói với tài khoản chính không? Cửa hàng play? Giả sử tôi đã xuất bản alpha bằng tài khoản của công ty, [email protected] và tôi tải xuống bằng tài khoản cá nhân của tôi [email protected] (đã được đăng ký trong danh sách người dùng thử nghiệm được cấp phép trên bảng điều khiển dành cho nhà phát triển). Vâng, tôi nhận được lỗi đó. Bạn có gợi ý nào không? Cảm ơn ^^ – marino

0

tôi đã dành gần 2 tuần cố gắng để khắc phục điều này, và tôi đã rất thất vọng khi tôi nhận ra tôi đã không thực sự cho phép thử nghiệm beta:

enter image description here

Để kích hoạt nó chắc chắn rằng bạn thực sự chọn hộp bên cạnh tên danh sách.

Các vấn đề liên quan