私は現在、ユーザーに小さな寄付をすることができるように、アプリにアプリ内課金を追加しようとしています。私は開発のためにAndroidスタジオの最新バージョンを使用しています(ステップバイステップで、私はまったく同じようにやっています...):https://developer.android.com/google/play/billing/billing_integrate.htmlAndroidのアプリ内課金:onServiceConnectedは呼び出されず、bindServiceから「false」が返されます
AIDLファイルが置かれています(com.android.vending.billingパッケージ内のsrc/main
の下に)上記の場所にあり、gen
フォルダの下に生成されています。私はこの方法onServiceConnected
が呼び出されないことに気づいた製品の検索をテストした
、それは次のように活動して実装されています。サービスへの結合
IInAppBillingService mService;
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);
}
};
が同じで(このように作られていますアクティビティ):
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_donation);
Intent serviceIntent =
new Intent("com.android.vending.billing.InAppBillingService.BIND");
serviceIntent.setPackage("com.android.vending");
bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE);
}
私は二つのことに気づい:私が去るとき
- を寄付活動私はコンソールで例外が表示されます:
... has leaked ServiceConnection ... that was originally bound here
- 私はいくつかの人々は、活動ではなく、実際にはアプリケーションのコンテキスト上で使用bindServiceを置き換えることを提案し、私がこれを行う場合は、問題はなくなっています。しかし、私はそれがonServiceConnected
と呼ばれていない私の主な問題とは無関係であると思うし、なぜ公式ガイドの活動に呼び出されているのでしょうか? bindService
はブール値を返し、戻り値を確認しました。falseでした。だから私はこれが問題の原因だと思う。
私は何人かの人々は、サービスのエントリがのAndroidManifest.xmlに追加されなければならないことを言っているのを見ました - このように:
はこれを試してみましたが、それは何の違いを行っていないし、また、このエントリは言及されていません公式ガイドでは、私はそれが必要ではないと信じています。
私が間違っていることは何ですか?
これは私を1日困惑させました。 – nurettin