"рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓рдХ": "0.55.4"
"рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдЖрдИрдПрдкреА": "^ 2.3.2"
рдПрдВрдбреНрд░реЙрдпрдб
рдХреГрдкрдпрд╛ рдореЗрд░реА рдорджрдж рдХрд░реЗрдВ, рдореБрдЭреЗ рдЗрд╕реЗ рддреБрд░рдВрдд рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА + 2k рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ
рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд░реИрдиреИрдк рдХреА рд╡рдЬрд╣ рд╕реЗ рдРрдк рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдкреНрд▓реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рддреНрд░реБрдЯрд┐ рджреБрд░реНрдШрдЯрдирд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИ:
java.lang.RuntimeException:
рдпрд╣рд╛рдБ рдкреНрд▓реЗ рдХрдВрд╕реЛрд▓ рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ:
https://ibb.co/gDxZQA
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд░реИрдиреИрдк рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред
in рдШрдЯрдХрдбрд╛рдЗрдорд╛рдЙрдВрдЯ:
рдкреНрд░рдпрддреНрди {
const result = рдкреНрд░рддреАрдХреНрд╖рд╛ RNIap.initConnection ();
} рдкрдХрдбрд╝ (рдЧрд▓рддреА) {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рдЗрд░реЗрдЯ);
}
рдШрдЯрдХ рдореЗрдВ:
RNIap.endConnection ();
рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реЗ рд╣рд╛рд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 2.3.19
рдФрд░ рд╡рд╛рдкрд╕реА рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдореИрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рд╕реНрдерд┐рддрд┐ рдереАред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ iap рдкреИрдХреЗрдЬ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред рдЕрдм + 3k рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рдХреЛрдИ рдХреНрд░реИрд╢ рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЖрдкрдХрд╛ рд╢реБрдХреНрд░рд┐рдпрд╛ред рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЖрдЬрдорд╛рдКрдВрдЧрд╛ред
рдирдорд╕реНрддреЗ, рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ? рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдореИрдВ 2.3.21 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
java.lang.RuntimeException:
com.facebook.react.bridge.CallbackImpl.invoke (CallbackImpl.java:28) рдкрд░
com.facebook.react.bridge.romiseImpl.resolve (PromiseImpl.java:30)
com.dooboolab.RNIap.RNIapModule $ 4.run (RNIapModule.java:155) рдкрд░
com.dooboolab.RNIap.RNIapModule рдкрд░ $ 3.onBillingSetupFinished (RNIapModule.java:124)
com.android.billingclient.api.BillingClientImpl рдкрд░ $ BillingServiceConnection.onServiceConnected (BillingClientImpl.java:903)
android.app.LoadedApk рдкрд░ $ ServiceDispatcher.doConnected (LoadedApk.java:1658)
android.app.LoadedApk $ ServiceDispatcher $ RunConnection.run (LoadedApk.java:1687) рдкрд░
android.os.Handler.handleCallback (рд╣реИрдВрдбрд▓рд░.рдЬрд╛рд╡рд╛: 789) рдкрд░
android.os.Handler.dispatchMessage (рд╣реИрдВрдбрд▓рд░.рдЬрд╡рд╛:98) рдкрд░
android.os.Looper.loop (Looper.java:164) рдкрд░
android.app.ActivityThread.main рдкрд░ (ActivThread.java:6938)
java.lang.reflect.Method.invoke (рдореВрд▓ рд╡рд┐рдзрд┐) рдкрд░
com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:327) рдкрд░
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374) рдкрд░
рдпрд╣ рдореЗрд░рд╛ рдХрдВрдкреЛрдиреЗрдВрдЯрдбрд┐рдорд╛рдЙрдВрдЯ рд╣реИ
const itemSKus = Platform.select({
ios: [
...
],
android: [
...
]
});
try {
const message = await RNIap.initConnection();
//console.log(`message = ${message}`);
const items = await RNIap.getProducts(itemSKus);
//console.log(`items = ${items.length}`);
//console.log(items);
this.props.storeInAppPurchaseList(items);
} catch (errorCode) {
console.log(`error rniap = ${errorCode}`);
}
@LinusU рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рд░рд┐рд▓реАрдЬ рдореЗрдВ callback.run()
рдХреНрд░реИрд╢ рдХреНрдпреЛрдВ рд╣реЛрдЧрд╛? рдХреНрдпрд╛ рд╣рдореЗрдВ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ callback
ensureConnection
рдореЗрдВ рд╢реВрдиреНрдп рд╣реИ рдпрд╛ рдирд╣реАрдВ? рд╣рдореНрдоред рдпрд╣ рдПрдХ runtime exception
ред
рд╣рдореНрдо, рдХреНрдпрд╛ RuntimeException
рдпрд╣рд╛рдБ рдорддрд▓рдм рд╣реИ, рд╡рд╣рд╛рдБ рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ? @hyochan рдЖрдкрдХреЛ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ callback
null
? ЁЯдФ
@LinusU рдЖрдкрдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдлрд┐рд▓рд╣рд╛рд▓ рдХреЛрдИ рдкрддрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдЕрднреА рдиреАрдЪреЗ рдореБрджреНрджрд╛ рд▓рд╛рдЗрди рджреЗрдЦреА рд╣реИред
RNIapModule.java
рд▓рд╛рдЗрди рдореЗрдВ 124,
callback.run();
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдФрд░ рд╡рд┐рдЪрд╛рд░ рд╣реИ?
@LinusU рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рдХрд╣рд╛рдВ рдереЗред
рдареАрдХ рд╣реИ, рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рд╣реИ:
рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╣рдо рдХреЙрд▓рдмреИрдХ рдХреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП!
@LinusU рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдПрдХ рдЯреНрд░реИрдХ рдореЗрдВ рд╣реИрдВ! рдХреНрдпрд╛ рдЖрдк рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП PR
рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?
рдЙрд╕ рдкрджреНрдзрддрд┐ рдореЗрдВ RuntimeException рдХреНрдпреЛрдВ рд╣реИ?
if (!mInvoked) {
mJSInstance.invokeCallback(mCallbackId, Arguments.fromJavaArgs(args));
mInvoked = true;
}
рдХреНрдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ?
@hyochan рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЗрд╕реЗ рдХрд▓ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдЬрд▓реНрдж рд╣реА рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
@ Ilario17 рдпрд╣ рд╢рд╛рдпрдж рдЭрдВрдбрд╛ рд╣реИ рдХрд┐ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдПрдХ рддрд░реНрдХ рддреНрд░реБрдЯрд┐ рд╣реИ, рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдХрдИ рдмрд╛рд░ рдирд╣реАрдВ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЖрд╣, рд╕рдорд╕реНрдпрд╛ рддрдм рдЖрддреА рд╣реИ рдЬрдм onBillingSetupFinished
рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВред ensureConnection
рд╣рдореЗрдВ рд╢реНрд░реЛрддрд╛ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рд╣рдо рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛рдиреА рдЬрдм рд╣рдо callback.run()
рдпрд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рд╡рд╛рджреЗ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ)ред рдЕрдЧрд░ рдХреЛрдИ рдХрд┐рд╕реА рдореБрдХреНрдд рдХрд░реНрдо рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рддреЛ рдПрдХ рдЖрд╕рд╛рди рдкреАрдЖрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП! рдЕрдиреНрдпрдерд╛ рдореИрдВ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛
@LinusU рддреЛ рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм onBillingSetupFinished
, рд╣рдореЗрдВ billingClientStateListener
рдирд┐рдХрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рдХреЛрдИ рд╣рдорд╛рд░реЗ рдмреАрдЪ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдмрдирдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛?
рдпрджрд┐ рдЖрдк рдПрдХ рддреНрд╡рд░рд┐рдд рдФрд░ рдЧрдВрджрд╛ рд╕рдорд╛рдзрд╛рди рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореИрдВ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдЬреЛрдбрд╝реВрдВрдЧрд╛, didCallCallback = false
ред рдлрд┐рд░ callback.run()
рдкреАрдЫреЗ if (didCallCallback) { didCallCallback = true; callback.run() }
рдХреЙрд▓ рдХреА рд░рдХреНрд╖рд╛ рдХрд░реЗрдВред
рдПрдХ рдХреНрд▓реАрдирд░ рд╕рдорд╛рдзрд╛рди рдмрд╕ рдкрд╣рд▓реЗ рдХреЙрд▓ рдХреЗ рдмрд╛рдж рд╢реНрд░реЛрддрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджреЗрдЧрд╛ ...
Log.d(TAG, "billing client ready");
callback.run();
//deregister the listener here?
рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рдлрд╝рд┐рдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА 2.4.0-beta2
рд░рд┐рд▓реАрдЬрд╝ рдХрд┐рдП рд╣реИрдВред рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
@hyochan рдореИрдВ рдЗрд╕ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛
рдХреГрдкрдпрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдХрд┐ 2.4.0-рдмреАрдЯрд╛ 3 рдХреЗ рдмрд╛рдж рд╕реЗ рдмреАрдЯрд╛ 2 рдореЗрдВ рдкреНрд░рддрд┐рдЧрдорди рдореБрджреНрджрд╛ рдерд╛ред
@hyochan рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж рднреА рддреНрд░реБрдЯрд┐ рдмрдиреА рд╣реБрдИ рд╣реИ :(
@ Ilario17 2.4.0-beta5
рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЪреВрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрдХреНрд╖ рдореЗрдВ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЖрдкрдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ :(
@hyochan рдиреЗ рд╕рд┐рд░реНрдл рд╢реНрд░реЛрддрд╛ рдХреЛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣рдЯрд╛рдпрд╛, рдЬреИрд╕рд╛ @LinusU рдиреЗ рдХрд╣рд╛?
@ Ilario17 рдореИрдВ рдЙрддреНрд╕реБрдХ рдерд╛ рдЕрдЧрд░ рдпрд╣ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ onBillingServiceDisconnected
рдХреЛ рдЕрдзрд┐рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдк рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкрдХреНрд╖ рдореЗрдВ рдкрд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ 2.4.0-рдмреАрдЯрд╛ 5 рдореЗрдВ рдЗрд╕ рджреБрд░реНрдШрдЯрдирд╛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдкреНрд░рдЬрдирди рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ:
рдореИрдВ рдЙрд╕ рдШрдЯрдХ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ IAP рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕реЗ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ, рдмреВрдо рдХреНрд░реИрд╢ред
EDIT: рдореИрдВрдиреЗ рдЗрд╕ рдХрдорд┐рдЯ рдХреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдпрд╣ https://github.com/dooboolab/react-native-iap/commit/2db337ac770a93508507ec046f310bddbb346fb рдХреНрд░реИрд╢ рд╣реЛ рдЧрдпрд╛
Attempt to invoke virtual method 'void com.android.billingclient.api.BillingClient.querySkuDetailsAsync(com.android.billingclient.api.SkuDetailsParams, com.android.billingclient.api.SkuDetailsResponseListener)' on a null object reference
run
RNIapModule.java:223
ensureConnection
RNIapModule.java:113
getItemsByType
RNIapModule.java:218
invoke
Method.java
invoke
JavaMethodWrapper.java:372
invoke
JavaModuleWrapper.java:160
run
NativeRunnable.java
handleCallback
Handler.java:789
dispatchMessage
Handler.java:98
dispatchMessage
MessageQueueThreadHandler.java:29
loop
Looper.java:164
run
MessageQueueThreadImpl.java:192
run
Thread.java:764
рдпрд╣ рдХреЛрдб 2 рдорд╛рдЙрдВрдЯ (2.4.0-beta5) рдкрд░ рджреБрд░реНрдШрдЯрдирд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ:
componentDidMount() {
this.loadIAPProducts()
}
componentWillUnmount() {
RNIap.endConnection();
}
loadIAPProducts = async () => {
const itemSkus = ['XXXX_id']
const result = await RNIap.initConnection();
if(result) {
try {
const products = await RNIap.getProducts(itemSkus);
if (products) {
this.setState({ iapProducts: products })
}
} catch (err) {
//console.log(err); // standardized err.code and err.message available
}
this.restoreIAPPurchases()
}
}
restoreIAPPurchases = async () => {
try {
const purchases = await RNIap.getAvailablePurchases()
if(purchases) {
purchases.forEach(purchase => {
if (purchase.productId === 'XXXX_id') {
try {
RNIap.consumePurchase(purchase.purchaseToken);
} catch(err) {
}
}
})
}
} catch (err) {
//console.log(err)
}
}
@ rom1k рдЦреИрд░ рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдХреГрдкрдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдг рдореЗрдВ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
@hyochan рдореИрдВ рдзреНрдпрд╛рди
рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ 2.4.0-рдмреАрдЯрд╛ 3 рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ "рдЦрд░реАрдж рдХреЛрдб рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реБрдИ: 0 (рдареАрдХ рд╣реИ)" рдХреЗрд╡рд▓ рдХреЙрд▓рд┐рдВрдЧ рдЧреЗрдЯрдкреНрд░реЛрдбрдХреНрдЯреНрд╕ рд╕реЗред рдмреАрдЯрд╛ 4 рдФрд░ 5 рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреБрд░реНрдШрдЯрдирд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреЗ рд╣реИрдВред рдореИрдВ 2.3.5 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ 2.4.0-рдмреАрдЯрд╛ рдореЗрдВ рдЖрдИрдУрдПрд╕ рд╢реНрд░реЛрддрд╛ рдмрдЧ рдлрд┐рдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
`` `
рдШрдЯрдХрдбрд┐рдорд╛рдЙрдВрдЯ () {
this.getProductDetails ();
}
getProductDetails = async () => {
try {
await RNIap.initConnection();
const details = await RNIap.getProducts(products);
this.setState({
title: details[0].title,
description: details[0].description,
price: details[0].localizedPrice,
loading: false
});
} catch (err) {
console.log(err.message)
}
};
рдХреНрдпрд╛ рдЖрдк рдмреАрдЯрд╛ 5 рдФрд░ рд╡рд╛рдкрд╕реА рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЙрд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЧрд▓рддреА рдереА рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЬрд▓реНрджреА рд╕реЗ рддрдп рдХрд┐рдпрд╛
@hyochan @LinusU рд╕рдВрд╕реНрдХрд░рдг 2.4.0-beta5 рдХреЗ рд╕рд╛рде рддреНрд░реБрдЯрд┐ рдЕрднреА рднреА рд╣реИред
рдореБрдЭреЗ рдЗрд╕ рдЪрд░реНрдЪрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред
2.4.0-рдмреАрдЯрд╛ 5 рдкрд░, рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ
Attempt to invoke virtual method void com.android.billingclient.api.BillingClient.querySkuDetailsAsync(...) on a null object reference
RNIapModule.java
рд▓рд╛рдЗрди 223 рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ mBillingClient
рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ null
рд╣реИред
рдкреБрди : RNIap.getProducts()
componentDidMount
рдФрд░ RNIap.endConnection()
componentWillUnmount
рдкрд░ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рдШрдЯрдХ рдХреЛ рдЕрдирдорд╛рдЙрдВрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдВред рдЙрдкрд░реЛрдХреНрдд рддреНрд░реБрдЯрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
рдЪрд░ рдХреНрд▓рд╛рдЗрдВрдЯ clientReady
рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд┐рд▓рд┐рдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗрдЯрдЕрдк рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕реЗ false
onBillingServiceDisconnected()
рдХреЙрд▓рдмреИрдХ рдореЗрдВ рд╕реЗрдЯ рдХрд░рдХреЗред рд▓реЗрдХрд┐рди mBillingClient
рдЦреБрдж рдХреЛ рддреБрд░рдВрдд рд╢реВрдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм endConnection()
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдмреЗрдореЗрд▓ рд╣реИред clientReady
рд▓рд┐рдП true
рд╕реЗрдЯ рд░рд╣рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рднрд▓реЗ рд╣реА mBillingClient
рд╢реВрдиреНрдп рд╣реЛред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдореЗрд░реА рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдПред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ onBillingServiceDisconnected()
рдХреЛ рд░реЛрдХрдиреЗ рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдореИрдВ рдЗрд╕ рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдЙрдореНтАНрдореАрдж рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд▓реЙрдЧрдЖрдЙрдЯ рдореЗрдВ "billing client disconnected"
рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП onBillingServiceDisconnected()
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рд╕рдВрднрд╛рд╡рд┐рдд рдлрд┐рдХреНрд╕ : clientReady = false
endConnection()
рд╡рд┐рдзрд┐ (рдЬреИрд╕реЗ рд▓рд╛рдЗрди 179 рдХреЗ рдмрд╛рдж) рдХреЗ рднреАрддрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рдореИрдВрдиреЗ рдЗрд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред рдЗрди-рдРрдк рдЦрд░реАрджрд╛рд░реА рдШрдЯрдХ рдХреЛ рдХрдИ рдмрд╛рд░ рд░реА-рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдпрд╛ рдХреНрд░реИрд╢ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ mBillingClient
рдХреЛ рд╢реВрдиреНрдп рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ? рдореБрдЭреЗ рдпрд╣рд╛рдВ рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИред рдореИрдВ рднреА рдЗрд╕ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдмрд┐рд▓рд┐рдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЧрд┐рддреБрдм рдкрд░ рдХреЛрдИ рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реВрдВред
@ mitchellmcm27 рдЖрдкрдХреЗ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдмрд╣реБрдд рд╣реА рдЖрд╢рд╛рдЬрдирдХ рд╣реИ рдФрд░ рдореИрдВ рдЖрдкрд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдмрд┐рдирд╛ рдХрд┐рд╕реА рдиреНрдпреВрдирддрдо рдкреНрд░рдЬрдирди рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрдард┐рди рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдХреЛрдИ PR
рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИред
рд╕рд╛рджрд░ред
рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдРрдк рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ 2.4.0-beta6 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдм рддрдХ рдХреБрдЫ рд╣рдЬрд╝рд╛рд░ рдЕрдкрдЧреНрд░реЗрдб рд╣реИрдВред рдХреЛрдИ рдХреНрд░реИрд╢ рдирд╣реАрдВ ЁЯСН
рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИред рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рддрдм рдХреЗ рд▓рд┐рдП рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ред
рдореЗрд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд╕реА рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рдХреБрдЫ рджреБрд░реНрдШрдЯрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╣реИред
java.lang.RuntimeException:
at com.facebook.react.bridge.CallbackImpl.invoke (CallbackImpl.java:28)
at com.facebook.react.bridge.PromiseImpl.resolve (PromiseImpl.java:30)
at com.dooboolab.RNIap.RNIapModule$4.run (RNIapModule.java:155)
at com.dooboolab.RNIap.RNIapModule$3.onBillingSetupFinished (RNIapModule.java:124)
at com.android.billingclient.api.BillingClientImpl$BillingServiceConnection.onServiceConnected (BillingClientImpl.java:903)
at android.app.LoadedApk$ServiceDispatcher.doConnected (LoadedApk.java:1658)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run (LoadedApk.java:1687)
at android.os.Handler.handleCallback (Handler.java:789)
at android.os.Handler.dispatchMessage (Handler.java:98)
at android.os.Looper.loop (Looper.java:164)
at android.app.ActivityThread.main (ActivityThread.java:6944)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run (Zygote.java:327)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1374)
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ 2.4.0-beta6 рдкрд░ рдЕрднреА рднреА рд╡рд╣реА рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдмрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
24 рдШрдВрдЯреЗ рд╕реЗ рдХрдо рд╕рдордп рдореЗрдВ 120 рджреБрд░реНрдШрдЯрдирд╛ред
рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рдХреЗ рдмрджрд▓рд╛рд╡реЛрдВ рд╕реЗ рдЙрдирдХреА рдЦреБрдж рдХреА рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреИрджрд╛ рдирд╣реАрдВ рд╣реБрдИрдВ, рдЬреИрд╕реЗ рдЕрдЧрд░ mBillingClient
рд╢реВрдиреНрдп рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рддрдХ рддреИрдпрд╛рд░ рдирд╣реАрдВ рд╣реИ, рддреЛ ensureConnection
рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ mBillingClient
рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджреЗрдЧрд╛
рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдпрд╣ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧреА, рддрд╛рдХрд┐ рдореИрдВ рдПрдХ рд╕реНрдерд┐рд░ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рд╕рдХреВрдВред
рдореБрдЭреЗ рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореВрд▓ рдореБрджреНрджреЗ рдХреЛ рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдерд╛, рдФрд░ рдЙрд╕ рдХреЗ рд▓рд┐рдП рдлрд┐рдХреНрд╕ "рд╢реВрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдВрджрд░реНрдн" рддреНрд░реБрдЯрд┐ рд╕рд╛рдордиреЗ рдЖрдИред рдпрджреНрдпрдкрд┐ рдмрд╛рдж рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛрдЧрд╛ (рдореИрдВ @LinusU рд╕реЗ рд╕рд╣рдордд
рдореИрдВрдиреЗ рдмреАрдЯрд╛ 6 рдореЗрдВ рдХреЙрд▓рдмреИрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рджреБрд░реНрдШрдЯрдирд╛рдУрдВ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХреА рд╣реИред
рдореИрдВрдиреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рджрд┐рдпрд╛ рд╣реИред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЗрд╕рдХреЗ рд▓рд┐рдП PR
рджреЗ рд╕рдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рд▓реЛрдЧ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрдм рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛? рдореБрдЭреЗ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред
рдореИрдВ рдмреАрдЯрд╛ 6 рдкрд░ рдореМрдЬреВрдж рдХреНрд░реИрд╢ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рд╕рд╛рде рд╣реА рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ 2.3.23ред рдЗрд╕ [1] рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рдирд╛ред
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЕрдм рдЬрдм рдореИрдВ рдШрд░ рдкрд░ рд╣реВрдВ, рддреЛ рдореИрдВ рдмреАрдЯрд╛ 6 рдХреЗ рд▓рд┐рдП Android рдореВрд▓ рдХреЛрдб рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрджрд┐ рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реИ, рддреЛ рдпрд╣ рд╣реЛ рд░рд╣рд╛ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рдРрдк рдореЗрдВ, getAvailablePurchases рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛):
рдореИрдВ рд╢реНрд░реЛрддрд╛ рдХреЛ рдорд╛рд░рдиреЗ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░реВрдБрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
[рез]
https://github.com/googlesamples/android-play-billing/issues/45#issuecomment -345466519
рдореИрдВрдиреЗ # 379 рдорд░реНрдЬ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ beta8
рдХреЛ рд░рд┐рд▓реАрдЬрд╝ рдХрд┐рдпрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдХреНрдпрд╛ рдпрд╣ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдирд╡реАрдирддрдо рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ?
@hyochan рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА 3.0.0-rc-2 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ?
java.lang.RuntimeException
com.dooboolab.RNIap.RNIapModule$3.onBillingSetupFinished
java.lang.RuntimeException:
at com.facebook.react.bridge.CallbackImpl.invoke (CallbackImpl.java:28)
at com.facebook.react.bridge.PromiseImpl.resolve (PromiseImpl.java:30)
at com.dooboolab.RNIap.RNIapModule$3.onBillingSetupFinished (RNIapModule.java:129)
at com.android.billingclient.api.BillingClientImpl$BillingServiceConnection$1.run (BillingClientImpl.java:1518)
at android.os.Handler.handleCallback (Handler.java:739)
at android.os.Handler.dispatchMessage (Handler.java:95)
at android.os.Looper.loop (Looper.java:148)
at android.app.ActivityThread.main (ActivityThread.java:7325)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1120)
@fokoz рдЖрдк 3.0.0-rc-4
рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ (рдЙрдореНрдореАрдж) рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
@hyochan рдЕрдЧрд░ рдореИрдВ try catch
рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ rc-4 рдХреЛ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдзрдиреНрдпрд╡рд╛рдж !
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@hyochan рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЗрд╕реЗ рдХрд▓ рджреЗрдЦрдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдЬрд▓реНрдж рд╣реА рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ
@ Ilario17 рдпрд╣ рд╢рд╛рдпрдж рдЭрдВрдбрд╛ рд╣реИ рдХрд┐ рдХрд╣реАрдВ рди рдХрд╣реАрдВ рдПрдХ рддрд░реНрдХ рддреНрд░реБрдЯрд┐ рд╣реИ, рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЙрд╕ рдкрджреНрдзрддрд┐ рдХреЛ рдХрдИ рдмрд╛рд░ рдирд╣реАрдВ рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЖрд╣, рд╕рдорд╕реНрдпрд╛ рддрдм рдЖрддреА рд╣реИ рдЬрдм
onBillingSetupFinished
рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВредensureConnection
рд╣рдореЗрдВ рд╢реНрд░реЛрддрд╛ рдХреЛ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рд╣рдо рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛рдиреА рдЬрдм рд╣рдоcallback.run()
рдпрд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЧрдП рд╡рд╛рджреЗ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ)ред рдЕрдЧрд░ рдХреЛрдИ рдХрд┐рд╕реА рдореБрдХреНрдд рдХрд░реНрдо рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реЛ рддреЛ рдПрдХ рдЖрд╕рд╛рди рдкреАрдЖрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП! рдЕрдиреНрдпрдерд╛ рдореИрдВ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛