2

アプリ内課金のチュートリアルを使用して実装を開始しています。

  • サンプルアプリをダウンロードしました
  • 開発者コンソールからキーを取得しました
  • マニフェストに適切な権限を追加する
  • 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 ファイルを取得しました。

4

3 に答える 3

7

aidl ファイルのパッケージ名は変更しないでください。com.android.vending.billingパッケージの下の src ディレクトリに aidl ファイルを配置します。

于 2013-02-01T05:54:37.603 に答える
3

Google Android Webサイトの指示に段階的に従いましたが、同じ問題がありました。パッケージ名を変更する場所について、明確かつ正確に言及していません。したがって、これを修正するには、.aidl ファイルを com.myawesome.app.main に移動する場合、すべてのファイルのヘッダーでパッケージ宣言を変更するだけでなく、labHelper 内のこの行でも変更する必要があります。 .java ファイル:

Intent serviceIntent = new Intent("com.myawesome.app.main.InAppBillingService.BIND");

望ましくないデフォルトは次のとおりです。

Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");

これで私は修正されましたが、あなたも修正されることを願っています。

于 2013-11-09T17:46:09.470 に答える
2

ゲイリー、アプリ内課金でスタートアップの課題を抱えているようですね。それは新しい問題ではありません。アプリ内課金は、仕事を始めるのが本当に面倒です。多くの人がそれを機能させるのに苦労しています。最初にスタンドアロンで動作させることをお勧めします。そして、プロジェクトの作業部分をコードに統合します。これをお勧めします

他のリンクはstackoverflowで見つけることができます。現時点では検索しません。

于 2013-01-14T17:59:33.680 に答える