I keep getting this error when I try to make an in-app purchase. I have uploaded a previous version of this app where I was able to make in-app purchases successfully! I have looked at the manifest file and it is identical (except for the version code) - but I cannot shake off this error :(
Is there a document that describes how to handle this? I have tried all the remedies suggested in this forum, including: - making sure that I build an unsigned apk and explicitly sign it with my release key (yes - I have checked to make sure that the key/password is accurate) - making sure that the right permissions are enabled (havent changed this since the last successful build
I am missing something trivial - but for the life of me, I cannot figure what!
Please help!
Here is my manifest file below:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.foo.bar"
android:versionName="1.4" android:versionCode="18">
<uses-sdk android:minSdkVersion="9"
android:targetSdkVersion="9" />
<uses-permission android:name="android.permission.WAKE_LOCK" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<uses-permission android:name="com.android.vending.BILLING" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<application
android:debuggable="false"
android:icon="@drawable/video"
android:label="@string/app_name" >
<activity android:name="com.inappbilling.InappActivity" />
<activity
android:configChanges="orientation"
android:label="@string/app_name"
android:name=".SplashActivity"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Favorites"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".PlayVideo"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".Featured"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<activity
android:name=".FacebookLike"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
<service android:name="com.inappbilling.BillingService" />
<receiver android:name="com.inappbilling.BillingReceiver" >
<intent-filter >
<action android:name="com.android.vending.billing.IN_APP_NOTIFY" />
<action android:name="com.android.vending.billing.RESPONSE_CODE" />
<action android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED" />
</intent-filter>
</receiver>
</application>
</manifest>
You need to sign your APK with your live certificate. Then install that onto your test device. You can then test InAppBilling. If you are testing your application by direct run via eclipse to device(In debug mode) then you will get this error.
Go to Android Settings > Applications (also known as Apps & notifications on some devices) > Google Play Store > Storage > tap on Clear storage and Clear cache. Repeat the same steps for Google Services framework. Try buying again. If you still have an error, try step 2.
You say that you already exported a signed application ("release" version), so the only other possibility I can think of is that the release version on your device is higher than the one "published".
I had this error and tried various suggestions from other posts on this topic but none worked.
In the end I found that it was caused by my debugger using a different key to the APK I uploaded to Google Play.
I was using the default debug.keystore which expires within a year.
I had to create a new debug.keystore which expires in more than fifty years (this limit came form an error message in Google Play when I tried to upload it).
I then built the application and uploaded the APK from my application's bin folder (built with my new debug.keystore).
On Windows 7 you can generate the new debug.keystore with this command (delete the existing debug.keystore first):
C:\Users\MyUserName\.android>"C:\Program Files\Java\jdk1.6.0\bin"\keytool.exe -genkey -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 21900
Your path to keytool.exe might differ from mine depending upon what is installed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With