[英]Google Play Campaign Measurement - NullPointerException
我正在嘗試通過此處的以下鏈接實施GA廣告系列衡量:https://developers.google.com/analytics/devguides/collection/android/v2/campaigns#campaign-params
NullpointerException
,我已經完成了所有工作,但是它在我的代碼中提供了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。 這是logcat:
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
語句時。
PS。 我確實將其完成到最后,盡管可能必須將某些內容傳遞給broadcastReceiver,但我可以在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是否不為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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.