28

In app billingAndorid アプリケーションにサービスを実装しようとしています。

IMarketBillingService.aidlファイルを Eclipse のプロジェクトに追加しました。その後、Eclipse はIMarketBillingService.javaファイルを自動生成しましたが、多くのエラーが発生しました。

@Override public android.os.IBinder asBinder() { return mRemote; }
- implements android.os.IInterface.asBinder
- The method asBinder() of type IMarketBillingService.Stub.Proxy must override asuperclass  method

@Override public android.os.Bundle sendBillingRequest(android.os.Bundle bundle) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
android.os.Bundle _result;
......
}
- The method sendBillingRequest(Bundle) of type IMarketBillingService.Stub.Proxy must override a superclass method
- implements com.android.vending.billing.IMarketBillingService.sendBillingRequest 

誰でもこれで私を助けることができますか?

私はMac、Eclipse JunoをAndroid SDKの最新バージョンで使用しています。

4

4 に答える 4

78

デフォルトのコンパイルオプションを使用してみてください。

  1. プロジェクトを右クリック(またはControlキーを押しながらクリック)して、[プロパティ]を選択します
  2. 「Javaコンパイラ」を選択します
  3. [プロジェクト固有の設定を有効にする]のチェックを外します

Eclipseは再コンパイルを求めるプロンプトを表示し、すべて正常に動作するはずです。

于 2012-11-17T08:36:02.270 に答える
4

また、生成された IInAppBillingService.java で多数のエラーが発生していました。私は多くの提案された解決策を試しましたが、成功しませんでした。最後に、Zedifire の方法の変形が私の Eclipse SDK で機能しました。(これらの手順は記憶からのものです。うまくいくまで試してみてください!)

  1. オフ > プロジェクト > 自動的にビルド
  2. /gen ファイルを削除しました
  3. 次に、>ウィンドウ>設定>Java>コンパイラに移動し、何らかの理由でコンプライアンスレベルがデフォルトで1.5に設定されていることを発見しました
  4. コンプライアンスをレベル 1.7 に戻しました
  5. >プロジェクト>クリーン
  6. >Project>Build All (まだエラー!)
  7. プロジェクトウィンドウを右クリック> Androidツール>プロジェクトのプロパティを修正

出来上がり - 生成されたファイルは最終的にエラーなしでコンパイルされました!

于 2013-06-28T23:38:40.030 に答える
1

Project->clean と build も解決するかもしれません

于 2013-03-10T18:19:34.330 に答える
0

その理由は、Java 1.5 がインターフェース メソッドのオーバーライドをサポートしていないためです。 https://stackoverflow.com/a/212642/1283492 Java 1.6 以降では許可されています。したがって、すでに easycheese によって述べられているように、プロジェクト プロパティの Java コンパイラ設定に Java 1.6 以降を配置する必要があります。

于 2015-07-25T11:38:32.333 に答える