Does UE4.27 or UE5 support billing 4.0.0?

Hi all:

I am using UE4.27 to build Android apk. Google publish warning that all app using Google Play Billing Library should upgrade to 4.0.0 version by 2022-11-01. Here is the link.

So I set com.android.billingclient:billing:4.0.0 in our build.gradle file and build the project. but we get error:
can not get symbol of getSku() in file Intermediate/Android/armv7/gradle/app/src/main/java/com/epicgames/ue4/GooglePlayStoreHelper.java:372

I found that in UE4.27, the file Engine/Plugins/Online/Android/OnlineSubsystemGooglePlay/Source/OnlineSubsystemGooglePlay_UPL.xml set billing version to 3.0.0, like this:

The plugin of OnlineSubsystemGooglePlay depends on API of billing 3.0.0, but API of Google Play Billing Library 3.0.0 is not incompatible with 4.0.0.

If UE have plan to support Google Play Billing Library 4.0.0? Or If any idea to support both 3.0.0 and 4.0.0? Thanks!

1 Like

I have same problem can you find any solution?

i have the same problem.
Is there any solution?
This is a very serious problem.

After looking at UE5 source over at(https://github.com/EpicGames/UnrealEngine/blob/5.0/Engine/Plugins/Online/Android/OnlineSubsystemGooglePlay/Source/OnlineSubsystemGooglePlay_UPL.xml#L31)
I’ve confirmed Unreal Engine does not yet support billing 4.0.0.

There is marketplace products that has android billing 4.0.0 in them, that could potentially solve your issue, but other than that you would have to figure out a way to do it yourselves…

Hope this information helps!

Can you solve this problem? Please share the solution with us.

how to solve this issue please let us know?

I found this repo online, perhaps you could use it as a foundation to create a V4 android billing library?
https://github.com/kulichin/UnrealAndroidPlayBilling

If that’s not viable, I bought MonetizationGoodies on the marketplace, supports the latest libraries.
Note: I’m not the creator of it, simply passing along the information.

No other Way. I tried that git hub but no result still getting the error

I’m also stuck here… It’s so sad to be completely blocked because of some billing version thing

Did anyone sorted this out?? If yess please share. We have been waiting with the finished product for days.

Nah man, I will work on it and see if i accidentally solve it, because i dont think theres other way, im not a good programmer at all but i will just try things randomly…

I resolve this problem but i dont know if in-app purchases work

Sure man If anything hits up please tell me. I really need to publish its some sort of urgent!

Did you get to set it to android billing version 4.0?

  • Open Android studio and open your gradle file in “\MyProject\Intermediate\Android”

  • Set ‘com.android.billingclient:billing:4.0.0’ in “BuildAdditions.gradle”

  • Go in GooglePlayStoreHelper
  • Copy\Paste this file

AndroidHelper.txt (28.2 KB)

  • Build With Android Studio

NOTE: I dont know if in app purchase work after this.

Sorry for my english

2 Likes

Dude, I think someone replied to you in another similar post, saying he installed some “Android Billing plugin” for unreal. And it really really works. Didnt it work for you? Because this is what i did:
Download plugin in Epic Games, go to plugins in your project, search for the plugin and just tick the box (activate it), and last reset Unreal Engine. Nothing else needed to be done.
Make sure you have the plugin activated!! Try it out and let me know if you made it work

I actually managed to do it with a Plugin called Android Play Billing, but thank you so much for this, it might help others!

worked!!!

4Choped, did you set this up using the SKU details (nodes) from Android Play Billing Plugin or use the In-app Purchase V2 (Nodes) from Unreal Engine?
Curious as my In-app purchases using the In-app Purchase V2 (Nodes) have stopped working and are now crashing the app?
Are you visual coding or using c++?

Is there any update on this ? Im currently having issue with both Android Billing and the Default engine Billing. I keep getting this error, that the code have been depreciated but i don’t know how to fix it.

private Purchase.PurchasesResult QueryPurchasesInternal(int ProductType)