アプリ内課金のチュートリアルを使用して実装を開始しています。
- サンプルアプリをダウンロードしました
- 開発者コンソールからキーを取得しました
- マニフェストに適切な権限を追加する
aidl ファイルとすべての util Java ファイルをプロジェクトに取得し、次のコードを onCreate イベントに実装しました...
if (GooglePlayVersion) { try { mHelper = new IabHelper(this, base64EncodedPublicKey); mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { public void onIabSetupFinished(IabResult result) { if (!result.isSuccess()) // Oh noes, there was a problem. debugLog("Problem setting up In-app Billing: " + result, 0); debugLog("IAB got bound", 0); } }); } catch (Exception e){ debugLog("iab exception " + e.getMessage(), 1); } }
私のアプリは mHelper.startsetup 行で吹き飛ばされます。例外なし。ステップスルーすると、その行を離れると、デバッグは次の行に進みません。アプリが起動しません。もちろん、GooglePlayVersion を false に設定すると、すべて正常に動作します。
編集: 昨日の投稿以来、mHelper.startSetup 行によって実際に例外がスローされていることがわかりました。 Stored Exception Found Binder invocation to an incorrect interface [Ljava.lang.StackTraceElement;@405a8478
.
この例外を含む他の投稿を見つけましたが、おそらく私の aidl ファイルがインビリング インターフェイスと一致していないことが示唆されました。ダウンロードした trivialdrivessample プログラムから、パッケージの行だけを変更して aidl ファイルを取得しました。