首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RuntimeException :在应用程序购买中调用BillingClient函数时

RuntimeException :在应用程序购买中调用BillingClient函数时
EN

Stack Overflow用户
提问于 2021-07-29 08:27:23
回答 1查看 110关注 0票数 0
代码语言:javascript
运行
复制
private BillingClient billingClient = BillingClient.newBuilder(activity)
            .setListener(purchasesUpdatedListener)
            .enablePendingPurchases()
            .build();

我正在集成google以供购买,但是当我调用这个方法时,我会得到一个错误来代替活动。错误是:

代码语言:javascript
运行
复制
/AndroidRuntime: FATAL EXCEPTION: main
Process: com.xxxxx.xxxxx, PID: 9433
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.xxxxx.xxxx/com.xxxx.coins_history.activity.CoinsHistoryActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2876)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:201)
    at android.app.ActivityThread.main(ActivityThread.java:6810)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference
    at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:126)
    at com.android.billingclient.api.BillingClientImpl.initialize(com.android.billingclient:billing@@4.0.0:1)
    at com.android.billingclient.api.BillingClientImpl.<init>(com.android.billingclient:billing@@4.0.0:4)
    at com.android.billingclient.api.BillingClientImpl.<init>(com.android.billingclient:billing@@4.0.0:9)
    at com.android.billingclient.api.BillingClient$Builder.build(com.android.billingclient:billing@@4.0.0:4)
    at com.jetmedianetwork.coins_history.activity.CoinsHistoryActivity.<init>(CoinsHistoryActivity.java:133)
    at java.lang.Class.newInstance(Native Method)
    at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:69)
    at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1216)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2864)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3081) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1831) 
    at android.os.Handler.dispatchMessage(Handler.java:106) 
    at android.os.Looper.loop(Looper.java:201) 
    at android.app.ActivityThread.main(ActivityThread.java:6810) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873) 

E/FirebaseCrashlytics:在com.google.firebase.crashlytics.internal.common.Utils.awaitEvenIfOnMainThread(Utils.java:122) at com.google.firebase.crashlytics.internal.common.CrashlyticsController.handleUncaughtException(CrashlyticsController.java:231) at com.google.firebase.crashlytics.internal.common.CrashlyticsController$1.onUncaughtException(CrashlyticsController.java:153) at com.google.firebase.crashlytics.internal.common.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.java:54) at com.facebook.internal.instrument.crashreport.CrashHandler.处理不明异常java.util.concurrent.TimeoutException错误org.chromium.base.JavaExceptionReporter.uncaughtException(chromium-Monochrome.aab-stable-432418123:6),java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068),java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063),java.lang.Thread.dispatchUncaughtException(Thread.java:1955),uncaughtException(CrashHandler.java:65)

EN

回答 1

Stack Overflow用户

发布于 2021-07-29 13:22:08

我认为这里的问题是,您的代码中有一个Null指针,因为计费客户端没有被实例化。尝试按以下方式修改代码

代码语言:javascript
运行
复制
private BillingClient billingClient = BillingClient!!.newBuilder(activity)
        .setListener(purchasesUpdatedListener)
        .enablePendingPurchases()
        .build();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68572580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档