kulichin / unrealandroidplaybilling Goto Github PK
View Code? Open in Web Editor NEWAndroid Play Billing plugin for Unreal Engine provides billing methods for buying consumable, non-consumable products and subscriptions.
License: MIT License
Android Play Billing plugin for Unreal Engine provides billing methods for buying consumable, non-consumable products and subscriptions.
License: MIT License
Hello I wanted to know if there were a reason for using a UGameInstanceSubsystem for the UAndroidPlayBillingSubsystem instead of UBlueprintFunctionLibrary as all functions inside are static
Looks like there is a bug on line 440 in AndroidPlayBillingSubsystem.cpp
. Please replace IsIAPInitialized_MethodID
to IsPurchased_MethodID
.
bool UAndroidPlayBillingSubsystem::IsPurchased(const FString& ProductID)
{
#if PLATFORM_ANDROID
if (JNIEnv* Env = FAndroidApplication::GetJavaEnv())
{
auto JProductID = FJavaHelper::ToJavaString(Env, ProductID);
// Call Java method
---> return CallBooleanMethod(Env, IsIAPInitialized_MethodID, *JProductID);
}
#endif
return false;
}
Any new on when it's going to be available on unreal 5.1? thanks!
Calling Query SkuDetails causes crash with error:
Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 13251 (PlayBillingLibr)
PS: do have same issue with OnlineSubsystem GooglePlay buildin plugin. (though there it crash only in armv7 build not arm64)
Hi,
I found that it will crash on QuerySkuDetail.
It caused by "'Primitive char conversion on invalid type 0โ"
It can fix by update AndroidPlayBillingSubsystem.cpp
- int IntroductoryPriceCycles = GetScopedStringFromObject(Env, Object, SkuDetailsRecord_IntroductoryPriceCycles_FieldID);
+ int IntroductoryPriceCycles = (int)Env->GetIntField(Object, SkuDetailsRecord_IntroductoryPriceCycles_FieldID);
I hope this article can help someone.
Thanks.
Using UE 5.0 with the latest version of the plugin and I get this error while trying to package my game for android
Z:\app\src\main\java\com\android\vending\billing\util\IabHelper.java:476: error: cannot find symbol
UATHelper: Packaging (Android (ETC2)): String sku = purchase.getSkus().get(0);
UATHelper: Packaging (Android (ETC2)): ^
UATHelper: Packaging (Android (ETC2)): symbol: method getSkus()
UATHelper: Packaging (Android (ETC2)): location: variable purchase of type Purchase
As mentioned here: https://developer.android.com/google/play/billing/deprecation-faq?hl=en
Google Play Billing 4.X is now deprecated since August 1st 2023 and we need to move on to the 5.0.
I would like to know if any update about this is planned so far? Thanks!
The in app purchases work just fine. But I cannot seem to fetch all the available IAP and their SKU details. The response, despite being OK, returns empty. I just want to fetch the details so that I can update the pricing and values in the UI for the user according to their country.
Add GooglePlayBilling dependency to PublicDependencyModuleNames in your {ProjectName}.Build.cs file (located in Source{ProjectName}\ directory).
Don't you mean
PublicDependencyModuleNames.Add("AndroidPlayBilling");
Hi!
I found another nasty bug.
The type of IntroductoryPriceCycles
field is integer. But this field obtained as string which causes the program to crash in Development mode. This bug in function GetSkuDetailsRecordStructFromJavaObject
in file AndroidPlayBillingSubsystem.cpp
on line 251
.
int64 IntroductoryPriceAmountMicros = (int64)Env->GetLongField(Object, SkuDetailsRecord_IntroductoryPriceAmountMicros_FieldID);
auto JIntroductoryPricePeriod = GetScopedStringFromObject(Env, Object, SkuDetailsRecord_IntroductoryPricePeriod_FieldID);
--> int IntroductoryPriceCycles = GetScopedStringFromObject(Env, Object, SkuDetailsRecord_IntroductoryPriceCycles_FieldID);
auto JIconURL = GetScopedStringFromObject(Env, Object, SkuDetailsRecord_IconURL_FieldID);
Also for the UE4 engine it is better to use the int32
type instead of int
.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.