Android Google Analytics导致黑屏问题

时间:2014-12-11 13:13:20

标签: android google-analytics

我只是按照this教程将Google Analytics SDK v4添加到Android应用中。现在的问题是,当我运行应用程序时,它只会在我设置跟踪的任何视图上显示黑屏。例如,下面是启动屏幕后第一个视图中的onCreate,onStart和onStop方法。启动画面加载很好,然后我在视图上得到一个黑屏。如果您注释掉分析代码一切正常

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.landing_screen);


        //Get a Tracker (should auto-report)


        //Define font for use
        Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/cabinregular.otf");

        //Set font to all elements
        ((TextView) findViewById(R.id.textFlat)).setTypeface(typeface);
        ((TextView) findViewById(R.id.textCool)).setTypeface(typeface);
        ((TextView) findViewById(R.id.textWarm)).setTypeface(typeface);
        ((TextView) findViewById(R.id.textPastels)).setTypeface(typeface);
        ((TextView) findViewById(R.id.textDecades)).setTypeface(typeface);
        ((TextView) findViewById(R.id.textNeutrals)).setTypeface(typeface);
        ((TextView) findViewById(R.id.textMidTones)).setTypeface(typeface);
        //((TextView) findViewById(R.id.appHeaderText)).setTypeface(typeface);


        //Create all the listeners to catch button presses
        ImageButton buttonFlat = (ImageButton) findViewById(R.id.buttonFlat);
        buttonFlat.setOnClickListener(this);
        ImageButton buttonCool = (ImageButton) findViewById(R.id.buttonCool);
        buttonCool.setOnClickListener(this);
        ImageButton buttonWarm = (ImageButton) findViewById(R.id.buttonWarm);
        buttonWarm.setOnClickListener(this);
        ImageButton buttonPastels = (ImageButton) findViewById(R.id.buttonPastels);
        buttonPastels.setOnClickListener(this);
        ImageButton buttonDecades = (ImageButton) findViewById(R.id.buttonDecades);
        buttonDecades.setOnClickListener(this);
        ImageButton buttonNeutrals = (ImageButton) findViewById(R.id.buttonNeutrals);
        buttonNeutrals.setOnClickListener(this);
        ImageButton buttonMidTones = (ImageButton) findViewById(R.id.buttonMidTones);
        buttonMidTones.setOnClickListener(this);

        ((colorlibApplicationClass) getApplication()).getTracker(colorlibApplicationClass.TrackerName.APP_TRACKER);




    }

    public void onStart()
    {
        super.onStart();
        //Get an Analytics tracker to report app starts & uncaught exceptions etc.
        GoogleAnalytics.getInstance(this).reportActivityStart(this);
    }

    public void onStop()
    {
        super.onStop();
        //Stop the analytics tracking
        GoogleAnalytics.getInstance(this).reportActivityStop(this);
    }

这是应用程序类;

package com.exampleapp.colorlib;



        import android.app.Application;

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

        import java.util.HashMap;

public class colorlibApplicationClass extends Application {

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

    //Logging TAG
    private static final String TAG = "MyApp";

    public static int GENERAL_TRACKER = 0;

    public enum TrackerName {
        APP_TRACKER, // Tracker used only in this app.
        GLOBAL_TRACKER, // Tracker used by all the apps from a company. eg: roll-up tracking.
        ECOMMERCE_TRACKER,// Tracker used by all the apps from a company. eg: roll-up tracking.

    }

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

    public colorlibApplicationClass() {
        super();
    }

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

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



        }
        return mTrackers.get(trackerId);
    }
}

1 个答案:

答案 0 :(得分:13)

这是上一版本的问题。查看here了解详情。

同时也许使用旧版本会更好。这个工作正常:

compile&#39; com.google.android.gms:play-services:6.1。+&#39;

编辑:从AndroidManifest中删除全局配置元数据工作正常。