Android Google Play活动测量-NullPointerException
我正试图通过下面的链接实现GA活动度量 所以,我已经完成了所有工作,但它在我的代码中提供了Android Google Play活动测量-NullPointerException,android,google-analytics,Android,Google Analytics,我正试图通过下面的链接实现GA活动度量 所以,我已经完成了所有工作,但它在我的代码中提供了NullpointerException // Get the intent that started this Activity. Intent installIntent = this.getIntent(); Uri Installuri = installIntent.getData(); EasyTracker.getInstance().set
NullpointerException
// Get the intent that started this Activity.
Intent installIntent = this.getIntent();
Uri Installuri = installIntent.getData();
EasyTracker.getInstance().setContext(this);
if (installIntent != null) {
EasyTracker.getTracker().setCampaign(Installuri.getPath()); //line 82
}
这就是代码,它应该做一般的跟踪。没什么特别的。然而,在上面提到的第82行上,它抛出了NullPointerException。以下是日志:
06-23 19:54:54.864: E/AndroidRuntime(13773): at android.os.Looper.loop(Looper.java:137)
06-23 19:54:54.864: E/AndroidRuntime(13773): at android.app.ActivityThread.main(ActivityThread.java:4441)
06-23 19:54:54.864: E/AndroidRuntime(13773): at java.lang.reflect.Method.invokeNative(Native Method)
06-23 19:54:54.864: E/AndroidRuntime(13773): at java.lang.reflect.Method.invoke(Method.java:511)
06-23 19:54:54.864: E/AndroidRuntime(13773): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
06-23 19:54:54.864: E/AndroidRuntime(13773): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
06-23 19:54:54.864: E/AndroidRuntime(13773): at dalvik.system.NativeStart.main(Native Method)
06-23 19:54:54.864: E/AndroidRuntime(13773): Caused by: java.lang.NullPointerException
06-23 19:54:54.864: E/AndroidRuntime(13773): at uk.co.futurelite.elite.drum.machine.Main.onCreate(Main.java:82)
06-23 19:54:54.864: E/AndroidRuntime(13773): at android.app.Activity.performCreate(Activity.java:4465)
06-23 19:54:54.864: E/AndroidRuntime(13773): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
06-23 19:54:54.864: E/AndroidRuntime(13773): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
06-23 19:54:54.864: E/AndroidRuntime(13773): ... 11 more
因此,我用IF
语句检查它,如果它不是null
,比如:
if (installIntent != null) {
那么,它抛出NullPointerException会发生什么呢?当它通过IF
语句时
顺便说一句,我确实完成了它,直到最后,虽然我可能不得不将一些东西传递给广播接收器,但我可以在logcat中看到它成功地接收了活动,如下所示:
06-23 19:54:56.544: W/GAV2(13773): Thread[GAThread,5,main]: Service unavailable (code=1), will retry.
06-23 19:54:56.824: I/GAV2(13773): Thread[GAThread,5,main]: Campaign found: utm_source%3Dxdebugx%26utm_medium%3Dbutton
但是应用程序本身崩溃并且无法启动。在尝试调用.getPath()之前,需要检查URI是否为空。在您提到的文档中,它是这样写的:
if (intent.getData() != null) {
EasyTracker.getTracker().setCampaign(uri.getPath());
}
// Get the intent that started this Activity.
Intent installIntent = this.getIntent();
Uri Installuri = installIntent.getData();
EasyTracker.getInstance().setContext(this);
if (Installuri != null) {
EasyTracker.getTracker().setCampaign(Installuri.getPath()); //line 82
}
使用代码段中的样式,它应该如下所示:
if (intent.getData() != null) {
EasyTracker.getTracker().setCampaign(uri.getPath());
}
// Get the intent that started this Activity.
Intent installIntent = this.getIntent();
Uri Installuri = installIntent.getData();
EasyTracker.getInstance().setContext(this);
if (Installuri != null) {
EasyTracker.getTracker().setCampaign(Installuri.getPath()); //line 82
}
在尝试调用.getPath()之前,需要检查URI是否为null。在您提到的文档中,它是这样写的:
if (intent.getData() != null) {
EasyTracker.getTracker().setCampaign(uri.getPath());
}
// Get the intent that started this Activity.
Intent installIntent = this.getIntent();
Uri Installuri = installIntent.getData();
EasyTracker.getInstance().setContext(this);
if (Installuri != null) {
EasyTracker.getTracker().setCampaign(Installuri.getPath()); //line 82
}
使用代码段中的样式,它应该如下所示:
if (intent.getData() != null) {
EasyTracker.getTracker().setCampaign(uri.getPath());
}
// Get the intent that started this Activity.
Intent installIntent = this.getIntent();
Uri Installuri = installIntent.getData();
EasyTracker.getInstance().setContext(this);
if (Installuri != null) {
EasyTracker.getTracker().setCampaign(Installuri.getPath()); //line 82
}
你能告诉我们什么是空的吗?是EasyTracker.getTracker()吗?@StephaneMathis,根据logcat,第82行抛出空指针。它是
EasyTracker.getTracker().setCampaign(Installuri.getPath())代码>这行是的,但这行是什么?因为getTracker()可以返回null,所以在null对象上设置campain也会给您一个NullPointerException。@StephaneMathis,这是上面Google文档的简单复制粘贴,我在应用程序中第一次称之为getTracker
。我在应用程序中没有任何其他getTracker,请告诉我们什么是空的好吗?是EasyTracker.getTracker()吗?@StephaneMathis,根据logcat,第82行抛出空指针。它是EasyTracker.getTracker().setCampaign(Installuri.getPath())代码>这行是的,但这行是什么?因为getTracker()可以返回null,所以在null对象上设置campain也会给您一个NullPointerException。@StephaneMathis,这是上面Google文档的简单复制粘贴,我在应用程序中第一次称之为getTracker
。我在apphi David中没有其他的getTracker,我面临着类似的问题。每次我在logcat中看到活动时,Installuri中都会出现null。如果uri中有空值,那么如何将数据发送到google analytics?嗨,大卫,我面临着类似的问题。每次我在logcat中看到活动时,Installuri中都会出现null。如果uri中有空值,那么如何将数据发送到google analytics??