在我的应用的生产版本中开始出现此错误.
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.Intent.migrateExtraStreamToClipData()' on a null object reference
Run Code Online (Sandbox Code Playgroud)
实际上并没有明确的界限,但我最近将支持库版本更改为24.0.0.这是完整的堆栈跟踪:
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.content.Intent.migrateExtraStreamToClipData()' on a null object reference
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1494)
at android.app.Activity.startActivityForResult(Activity.java:3745)
at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75)
at android.app.Activity.startActivityForResult(Activity.java:3706)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:871)
at com.google.android.gms.common.internal.zzi$1.zztD(Unknown Source)
at com.google.android.gms.common.internal.zzi.onClick(Unknown Source)
at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:162)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Run Code Online (Sandbox Code Playgroud)
编辑:我还想注意,100%的用户收到此错误也是根植.这也发生在23.4.0 ...我也有一个潜在的相关错误,它同时出现,与Firebase相关的Base64.decode功能有关.
编辑2:前几天我从Android Dev获得了一些帮助.他们建议我更新我的项目的Google Play服务版本,到目前为止似乎已经有所帮助.我会再等几天才能从我的用户那里得到结果,但初始日志很有希望.
我之前使用的是9.0.2但我现在使用的是9.2.0.
编辑3:更新到9.2.0没有帮助崩溃.我仍然从root用户那里得到同样的错误.我注意到,遇到崩溃的用户低于Android 6.0,因此我将在现场设备上进行测试并尽快更新.
这个问题(Android In-App Billing Dynamic Product List)是在 3 年前提出的。Android 仍然无法使用动态应用内购买项目吗?
我希望实现这种功能的原因是我的应用程序为某些用户提供了一种方式来创建他们自己的应用程序内购买供其他人购买。
似乎另一种解决方案是使用可消耗的应用内货币,但我更愿意直接通过 Play 商店购买(尤其是因为我已经看到了到处都可以破解游戏内货币的方法)。
无论选项如何,我都想使用服务器端验证。有没有办法通过服务器添加应用内购买?