28

我正在尝试In app billing在我的 Andorid 应用程序中实现服务。

我已将该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. 然后转到 >Window>Preferences>Java>Compiler 并发现不知何故合规级别默认为 1.5
  4. 将合规性更改回 1.7 级
  5. >项目>清洁
  6. >项目>全部构建(仍然错误!)
  7. 右键单击项目窗口>android工具>修复项目属性

瞧——生成的文件最终编译没有错误!

于 2013-06-28T23:38:40.030 回答
1

Project-->clean and build 也可以解决它

于 2013-03-10T18:19:34.330 回答
0

原因是,Java 1.5 不支持重写接口方法。 https://stackoverflow.com/a/212642/1283492 从 Java 1.6 开始是允许的。因此,正如easycheese 所述,需要将Java 1.6 或更高版本放在项目属性的Java 编译器设置中。

于 2015-07-25T11:38:32.333 回答