I am trying to implement In app billing
service in my Andorid application.
I've added the IMarketBillingService.aidl
file to my project in Eclipse. Then Eclipse autogenerated the IMarketBillingService.java
file, but with many errors.
@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
Can anyone help me with this?
I am using Mac, Eclipse Juno with last version of Android SDK.
You might try to use default compile options.
- Right-click (or Control-Click) the project and select "Properties"
- Select "Java Compiler"
- Uncheck "Enable Project Specific Settings"
Eclipse will prompt to re-compile and it should be all good.
Was also getting numerous errors in the generated IInAppBillingService.java. I tried many, many suggested solutions without success. Finally a variant of Zedifire's method worked on my Eclipse SDK. (these steps are from memory - try around until it works!)
- turned off >Project>Build Automatically
- deleted the /gen files
- THEN went to >Window>Preferences>Java>Compiler and found that somehow compliance level had defaulted to 1.5
- changed compliance back to level 1.7
- >Project>Clean
- >Project>Build All (still errors!)
- Right clicked on project window >android tools>fix project properties
VOILA -the generated files finally compiled without the errors!
Project-->clean and build may solve it as well
The reason is, that Java 1.5 does not support overriding interface methods.
https://stackoverflow.com/a/212642/1283492
From Java 1.6 onwards it is allowed. Thus as already stated by easycheese, one needs to put Java 1.6 or higher in the java compiler settings of the project properties.