尝试在空对象引用

时间:2016-07-27 14:27:03

标签: java android automated-tests

我正在发布我的应用的新版本并使用Google的测试实验室。现在我第一次遇到了一个问题,引发了一段代码,与之前的所有版本(完美运行)相比,我没有改变:

Intent intent = new Intent( Intent.ACTION_VIEW,
                Uri.parse("market://details?id=com.me.myapp") );
if ( intent.resolveActivity(getPackageManager()) != null )
    startActivity( intent );

仅在带有Android 5.1的Galaxy S6上(12个设备中)我收到以下错误:

问题:java.lang.NullPointerException:尝试在空对象引用上调用虚方法'boolean com.google.android.finsky.api.model.DfeToc.isGplusSignupEnabled()': < / p>

  

FATAL EXCEPTION:主要进程:com.android.vending,PID:20993   java.lang.NullPointerException:尝试调用虚方法   “布尔   com.google.android.finsky.api.model.DfeToc.isGplusSignupEnabled()'on   一个空对象引用   com.google.android.finsky.detailspage.RateReviewModule.bindModule(RateReviewModule.java:94)     在   com.google.android.finsky.detailspage.DetailsFragment2.rebindViews(DetailsFragment2.java:476)     在   com.google.android.finsky.activities.DetailsDataBasedFragment.rebindViews(DetailsDataBasedFragment.java:138)     在   com.google.android.finsky.fragments.PageFragment.onDataChanged(PageFragment.java:261)     在   com.google.android.finsky.activities.DetailsDataBasedFragment.onDataChanged(DetailsDataBasedFragment.java:263)     在   com.google.android.finsky.api.model.DfeModel.notifyDataSetChanged(DfeModel.java:100)     在   com.google.android.finsky.api.model.DfeDetails.onResponse(DfeDetails.java:91)     在   com.google.android.finsky.api.model.DfeDetails.onResponse(DfeDetails.java:16)     在   com.google.android.finsky.api.DfeRequest.deliverResponse(DfeRequest.java:569)     在   com.google.android.finsky.api.DfeRequest.deliverResponse(DfeRequest.java:56)     在   com.android.volley.ExecutorDelivery $ ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)     在android.os.Handler.handleCallback(Handler.java:739)处   android.os.Handler.dispatchMessage(Handler.java:95)at   android.os.Looper.loop(Looper.java:145)at   android.app.ActivityThread.main(ActivityThread.java:6837)at   java.lang.reflect.Method.invoke(Native Method)at   java.lang.reflect.Method.invoke(Method.java:372)at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1404)     在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

我不知道我是否能够崩溃Google Play应用,但这是Google测试实验室提供的屏幕截图。任何人都可以告诉我我做错了什么吗?

1 个答案:

答案 0 :(得分:2)

我完全尝试了你的代码片段(当然是交换我的应用识别码):

Intent intent = new Intent( Intent.ACTION_VIEW,
                Uri.parse("market://details?id=com.me.myapp") );
if ( intent.resolveActivity(getPackageManager()) != null )
    startActivity( intent );

事实上,似乎Google测试实验室中的其中一个测试设备崩溃了它应该只是启动Google Play应用程序的时刻。

所以,我的答案是:我确认这个NullPointerException与测试的应用程序无关。