2017-08-02 5 views
0

私はAndroidの簡単な例を使用して私のアプリでアプリ内課金を実装しようとしているAndroidのInApp課金エラー:IABの活動の結果でのNULLデータ

Null data in IAB activity result

を得続けます。私は間違って何をしていますか?

public class Donate extends AppCompatActivity { 
private static final String TAG = 
     "TAG HERE"; 
IabHelper mHelper; 
static final String ITEM_SKU = "android.test.purchased"; 

private Toolbar toolbar; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.supportRequestWindowFeature(Window.FEATURE_NO_TITLE); 
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
    this.setContentView(R.layout.activity); 

    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    toolbar.setNavigationOnClickListener(new View.OnClickListener(){ 
     @Override 
     public void onClick(View view) { 
      finish(); 
     } 
    }); 

    //Google play purchase test 
    String base64EncodedPublicKey = 
      "<My base 64 key>"; 
    mHelper = new IabHelper(this, base64EncodedPublicKey); 
    Button button = (Button) findViewById(R.id.donate_btn); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      mHelper.launchPurchaseFlow(Donate.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); 
    } 
} 
+0

は、あなたがGoogle Playストアアカウントで製品を作成したことがありますか?あなたはどんなテストをしていますか?アルファか他の人ですか? –

+0

私は 'static final String ITEM_SKU =" android.test.purchased ";' – aby4reality

+0

私はまだデバッグモードでテストしています – aby4reality

答えて

1

まだGoogleプレイで製品を作成していませんでしたようですデベロッパーコンソール。プロセスを手助けするために、以下のチュートリアルをチェックしてください。これらは、ステップバイステップでは、Android Studioでアプリ内課金を実装するガイドです:

http://www.techotopia.com/index.php/An_Android_Studio_Google_Play_In-app_Billing_Tutorial

https://developer.android.com/google/play/billing/index.html

+0

私は静的な最終文字列を使用していますITEM_SKU = ** "android.test.purchased" **これに対しても製品を作成する必要はありますか? – aby4reality

+1

はい。バックエンドのSKU_IDごとに製品を作成する必要があります。チュートリアルを参照してください。彼らはあなたを大いに助けます。ステップバイステップでそれらに従ってください。 –

1

あなたが開始されているので、私はまたGoogle Play Billing Libraryに目を維持することをお勧めします。これはdevのプレビューにありますが、マイグレーションを簡単にするために検討します。

Kavach氏によると、製品を追加したことを確認します。 そして、これを追加し、あなたが得るものを教えて:onDestroyでヘルパーを配置することを忘れないでください、

mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { 
    public void onIabSetupFinished(IabResult result) { 
     if (!result.isSuccess()) { 
     Log.d(TAG, "Problem setting up In-app Billing: " + result); 
     } 
    } 
}); 

最終:

if (mHelper != null) mHelper.dispose(); 
+0

テスト製品を持っているので、startSetupの結果は何ですか?これで問題は解決しました。答えを受け入れてください。 –

関連する問題