2014-12-11 5 views
8

Я только что последовал за this учебным пособием для добавления SDK Google Analytics v4 в приложение для Android. Проблема в том, что когда я запускаю приложение, он просто дает черный экран в любом представлении, которое я настроил с отслеживанием. Например, ниже методы onCreate, onStart и onStop из первого представления после заставки. Экран заставки загружается отлично, тогда я просто получаю черный экран на экране. Если вы прокомментировали код аналитики, все работаетAndroid Google Analytics, вызывающий черный экран

@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); 
    } 
} 
+0

Можете ли вы разместить логарифм? – AesSedai101

+0

Журнал пуст. – jskrwyk

ответ

13

Это проблема последней версии. Проверьте here для получения дополнительной информации.

Между тем, возможно, лучше использовать более старую версию. Это один работает отлично:

компиляции 'com.google.android.gms: играть-услуги: 6,1 +.

Edit: Удаление глобальной конфигурации мета-данные из AndroidManifest работали отлично.

+0

Когда я удаляю метаданные глобальной конфигурации, он работает снова, но не правильно передает экраны. Изменения в Gradle до версии 6.1, похоже, работают и отправляют экраны. – jskrwyk

Смежные вопросы