如何纠正自动生成的IMarketBillingService.java文件中的错误?

时间:2012-11-16 14:22:23

标签: android in-app-billing

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

我已将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 个答案:

答案 0 :(得分:78)

您可以尝试使用默认编译选项。

  1. 右键单击(或按住Control键单击)项目,然后选择“属性”
  2. 选择“Java Compiler”
  3. 取消选中“启用项目特定设置”
  4. Eclipse将提示重新编译,它应该都很好。

答案 1 :(得分:4)

在生成的IInAppBillingService.java中也遇到了很多错误。我尝试了很多很多建议的解决方案但没有成功最后,Zedifire方法的一个变种适用于我的Eclipse SDK。 (这些步骤来自记忆 - 尝试直到它起作用!)

  1. 已关闭>项目>自动构建
  2. 删除了/ gen文件
  3. 然后转到> Window>偏好设置> Java>编译器,发现合规级别默认为1.5
  4. 将合规性更改回1.7级
  5. >项目>清洁
  6. >项目>全部构建(仍然是错误!)
  7. 项目窗口中的
  8. 右键单击> android工具>修复项目属性
  9. VOILA - 最终编译生成的文件没有错误!

答案 2 :(得分:1)

项目 - >清理和构建也可以解决它

答案 3 :(得分:0)

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