Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 谷歌分析活动跟踪:测试_Java_Android_Google Analytics - Fatal编程技术网

Java 谷歌分析活动跟踪:测试

Java 谷歌分析活动跟踪:测试,java,android,google-analytics,Java,Android,Google Analytics,我正在尝试在我的应用程序中实现谷歌分析活动跟踪。有关守则如下: MainActivity.java package com.example.prakhar.myapplication; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v

我正在尝试在我的应用程序中实现谷歌分析活动跟踪。有关守则如下:

MainActivity.java

package com.example.prakhar.myapplication;

import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View;

import com.google.android.gms.analytics.HitBuilders; import com.google.android.gms.analytics.Tracker;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        Tracker t = ((AnalyticsApplication) getApplication()).getTracker(AnalyticsApplication.TrackerName.APP_TRACKER);
        String campaignData = "http://examplepetstore.com/index.html?" +
                "utm_source=email&utm_medium=email_marketing&utm_campaign=summer" +
                "&utm_content=email_variation_1";

        Log.d("MainActivity", "Sending an event");
        t.send(new HitBuilders.ScreenViewBuilder()
                        .setCampaignParamsFromUrl(campaignData)
                        .build()
        );
        Log.d("MainActivity", "Event sent");

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_SHORT)
                        .setAction("Action", null).show();
            }
        });

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    } }
AnalyticsApplication.java

package com.example.prakhar.myapplication;

import android.app.Application;

import com.google.android.gms.analytics.GoogleAnalytics;
import com.google.android.gms.analytics.Tracker;

import java.util.HashMap;

/**
 * Created by prakhar on 2/12/15.
 */
public class AnalyticsApplication extends Application{
    private Tracker mTracker;

    // The following line should be changed to include the correct property id.
    private static final String PROPERTY_ID = "UA-XXXX-XX";

    /**
     * Enum used to identify the tracker that needs to be used for tracking.
     *
     * A single tracker is usually enough for most purposes. In case you do need multiple trackers,
     * storing them all in Application object helps ensure that they are created only once per
     * application instance.
     */
    public enum TrackerName {
        APP_TRACKER,
        GLOBAL_TRACKER,
    }

    HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

    synchronized Tracker getTracker(TrackerName trackerId) {
        if (!mTrackers.containsKey(trackerId)) {

            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
            Tracker t = (trackerId == TrackerName.APP_TRACKER) ? analytics.newTracker(PROPERTY_ID)
                    : analytics.newTracker(R.xml.app_tracker);
            mTrackers.put(trackerId, t);

        }
        return mTrackers.get(trackerId);
    }

    synchronized public Tracker getDefaultTracker()
    {
        if (mTracker == null)
        {
            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
            mTracker = analytics.newTracker(R.xml.global_tracker);
        }
        return mTracker;
    }
}
package com.example.prakar.myapplication;
导入android.app.Application;
导入com.google.android.gms.analytics.GoogleAnalytics;
导入com.google.android.gms.analytics.Tracker;
导入java.util.HashMap;
/**
*由Prakar于2015年2月12日创建。
*/
公共类分析应用程序扩展了应用程序{
私人追踪器;
//应更改以下行以包含正确的属性id。
私有静态最终字符串属性\u ID=“UA-XXXX-XX”;
/**
*用于标识需要用于跟踪的跟踪器的枚举。
*
*一个跟踪器对于大多数用途来说已经足够了。如果您确实需要多个跟踪器,
*将它们全部存储在应用程序对象中有助于确保它们每一次仅创建一次
*应用程序实例。
*/
公共枚举跟踪名{
应用程序跟踪程序,
全球跟踪系统,
}
HashMap mTrackers=新HashMap();
同步跟踪程序getTracker(TrackerName trackerId){
如果(!mTrackers.containsKey(trackerId)){
GoogleAnalytics analytics=GoogleAnalytics.getInstance(this);
Tracker t=(trackerId==TrackerName.APP\u Tracker)?analytics.newTracker(属性\u ID)
:analytics.newTracker(R.xml.app_tracker);
mTrackers.put(trackerId,t);
}
返回mTrackers.get(trackerId);
}
同步的公共跟踪程序getDefaultTracker()
{
if(mTracker==null)
{
GoogleAnalytics analytics=GoogleAnalytics.getInstance(this);
mTracker=analytics.newTracker(R.xml.global_tracker);
}
返回mTracker;
}
}
AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.prakhar.myapplication" >

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:name="com.example.prakhar.myapplication.AnalyticsApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!-- Used for Google Play Store Campaign Measurement-->

        <receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver"
            android:enabled="true">
            <intent-filter>
                <action android:name="com.google.android.gms.analytics.ANALYTICS_DISPATCH" />
            </intent-filter>
        </receiver>
        <service android:name="com.google.android.gms.analytics.AnalyticsService"
            android:enabled="true"
            android:exported="false"/>

        <!-- Optionally, register CampaignTrackingReceiver and CampaignTrackingService to enable
             installation campaign reporting -->
        <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>
        <service android:name="com.google.android.gms.analytics.CampaignTrackingService" />
    </application>
</manifest>

app_tracker.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer name="ga_sessionTimeout">300</integer>
    <bool name="ga_autoActivityTracking">true</bool>
    <string name="ga_trackingId">UA-XXXXXX </string>
    <string name="ga_sampleFrequency">100.0</string>
    <bool name="ga_reportUncaughtExceptions">true</bool>
</resources>

300
真的
UA-XXXXXX
100
真的
从本质上说,我应该在安装应用程序后立即获取日志,但事实并非如此。我哪里做错了?我用错误的方法测试它吗


最初我得到的是
ClassCastException
,但我通过将名称包含在android清单中解决了这个问题。

我不确定,但在网页上,当你安装分析时,你必须等待大约1/2天才能开始工作。

我昨天在应用程序上安装了它,我从早上9点开始工作,现在是4点,这还不够吗?我真的不知道,等到明天。我在看这个,你没有app_traker.xml,对吗?对不起,忘了加那个。好了。