Android Question Update to a newer version of Google Play Billing Library ... but I use v7 lib

SDFP Studio

Member
Licensed User
Hello :)
Since yesterday I have a message in the console that tells me that I must update Google Play Billing to v6 or higher.
But my app uses the v7 library : v7.00 - Based on Google Play Billing v7.00

To make sure that you can continue to make updates to your app, you must:
  1. Update your app to use Google Play Billing Library version 6.0.1 or later. We recommend updating to version 7 to make use of the latest monetisation features on Google Play
  2. Update any third-party SDKs that include the Google Play Billing Library
  3. Publish a new version of your app to tracks that you actively publish to

Anyone else have this message?
Thanks
Francis
 

SDFP Studio

Member
Licensed User
Update sent this morning, still the warning

Update to a newer version of Google Play Billing Library to prevent your updates from being rejected. Your app uses a version of Google Play Billing Library that will be deprecated soon

Maybe it is caused by that code ? :)

B4X:
ProductDetailsParamsBuilder = ProductDetailsParamsBuilder.InitializeStatic("com.android.billingclient.api.BillingFlowParams.ProductDetailsParams").RunMethod("newBuilder", Null)
BillingFlowParamsBuilder = BillingFlowParamsBuilder.InitializeStatic("com.android.billingclient.api.BillingFlowParams").RunMethod("newBuilder", Null)
 
Upvote 0

aeric

Expert
Licensed User
Longtime User
I check my Play Console. I received 2 messages.

1. We need to target Android 14 (API level 34) or higher
2. App must use Google Play Billing Library version 6.0.1 or later

I am also using GooglePlayBilling v7.00

1720188346998.png


I hope @Erel sees this.
 
Upvote 0

asales

Expert
Licensed User
Longtime User
I checked the Policy Status and I have an app with 2 warnings: SDK 34 and Play Billing 7.
I updated the app now and I'm still waiting to the publish to verify if the warnings is disappear or don't.
 
Upvote 0

SDFP Studio

Member
Licensed User
Do you also declare objects manually like I do ?

B4X:
ProductDetailsParamsBuilder = ProductDetailsParamsBuilder.InitializeStatic("com.android.billingclient.api.BillingFlowParams.ProductDetailsParams").RunMethod("newBuilder", Null)
BillingFlowParamsBuilder = BillingFlowParamsBuilder.InitializeStatic("com.android.billingclient.api.BillingFlowParams").RunMethod("newBuilder", Null)

Maybe that kind of declaration is relative to old versions ?
 
Upvote 0

aeric

Expert
Licensed User
Longtime User
Do you also declare objects manually like I do ?

B4X:
ProductDetailsParamsBuilder = ProductDetailsParamsBuilder.InitializeStatic("com.android.billingclient.api.BillingFlowParams.ProductDetailsParams").RunMethod("newBuilder", Null)
BillingFlowParamsBuilder = BillingFlowParamsBuilder.InitializeStatic("com.android.billingclient.api.BillingFlowParams").RunMethod("newBuilder", Null)

Maybe that kind of declaration is relative to old versions ?
This code is essential for LaunchBillingFlow
I don't think you should exclude it if you are using Subscriptions.

If we read the guideline Learn how to migrate to Google Play Billing Library 7
I think the library should explicitly specify the version.
B4X:
dependencies {
    def billingVersion = 7.0.0

    implementation "com.android.billingclient:billing:$billingVersion"
}

Which should be updated in line #68 and #69 in https://github.com/AnywhereSoftware...oftware/b4a/objects/BillingClientWrapper.java,
B4X:
@Version(5.21f)
@DependsOn(values = { "billing-5.2.1.aar" })

This is just my wild guess.
 
Last edited:
Upvote 0

Scantech

Well-Known Member
Licensed User
Longtime User
This code is essential for LaunchBillingFlow
I don't think you should exclude it if you are using Subscriptions.

If we read the guideline Learn how to migrate to Google Play Billing Library 7
I think the library should explicitly specify the version.
B4X:
dependencies {
    def billingVersion = 7.0.0

    implementation "com.android.billingclient:billing:$billingVersion"
}

Which should be updated in line #68 and #69 in https://github.com/AnywhereSoftware...oftware/b4a/objects/BillingClientWrapper.java,
B4X:
@Version(5.21f)
@DependsOn(values = { "billing-5.2.1.aar" })

This is just my wild guess.
If i remember this was similar issue that happened with the older library. Erel forgot to update the version label

Update: This is what he has

B4X:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

@Version(7.0F)
@ShortName("BillingClient")
public class BillingClientWrapper {
   private String eventName;
   @Hide
   public BillingClient client;

B4X:
     AddApplicationText(
 <meta-data
            android:name="com.google.android.play.billingclient.version"
            android:value="5.2.1" />

        <activity
            android:name="com.android.billingclient.api.ProxyBillingActivity"
            android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:exported="false"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />
)
AddManifestText(
 <queries>
        <intent>
            <action android:name="com.android.vending.billing.InAppBillingService.BIND" />
        </intent>
    </queries>
   )
 
Last edited:
Upvote 0
Top