2013-01-07 10 views
5

Ho implementato la tempesta prima. Sta funzionando bene. Oggi con la nuova versione di sdk, flurry non registra nulla in logcat.Flurry non registra nulla in Android

Il mio codice

Flurry.java

public class Flurry { 

private static final String API_KEY = "xxxxxxxxxxxxxxxxxxxxxx"; 
private static Context mContext; 

public static void init(Context c) { 
    mContext = c; 
} 

public static Context getContext() { 
    return mContext; 
} 

public static void onStartSession() { 
    if (mContext != null) { 
     Debug.e("", "startng flurry session..."); 

     FlurryAgent.setUserId(Utils.getUserId(mContext)); 
     FlurryAgent.setVersionName(Utils.getAppVersion(mContext)); 
     FlurryAgent.setLogEnabled(true); 
     FlurryAgent.setLogEvents(true); 
     FlurryAgent.onStartSession(mContext, API_KEY); 
     // FlurryAgent.initializeAds(mContext); 
    } else { 
     Debug.e("", "mContext is null"); 
    } 
} 

public static void onEndSession() { 
    if (mContext != null) { 
     Debug.e("", "ending flurry session..."); 
     FlurryAgent.onEndSession(mContext); 
    } 
} 
} 

in attività

public class MainActivity extends TabActivity implements OnTabChangeListener { 
/** Called when the activity is first created. */ 

TabHost tabHost; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.main); 
    Flurry.init(this); 
    Flurry.onStartSession();   

    setTabs(); 

} 

@Override 
protected void onDestroy() { 
    Flurry.onEndSession(); 
    super.onDestroy(); 
} 
} 

in manifest.xml

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

quando ho implementato prima che mi mostri accedo come questo , ma oggi corrompendo in un'altra app, non ho avuto alcun log di raffica ... quale può essere il problema ??

4359   FlurryAgent D Initializing Flurry session 
4359   FlurryAgent D New session 
4359   TitleActivity V ::onResume:: 
4359    Settings W Setting android_id has moved from android.provider.Settings.System to android.provider.Settings.Secure, returning read-only value. 
4359   FlurryAgent I loading persistent data: /data/data/com.xxxxxx/files/.flurryagent.-6ee7b2a3 
    4359   FlurryAgent D Loading API key: ****************xxxx 
4359   FlurryAgent D Loading session reports 
4359   FlurryAgent D Persistent file loaded 
4359   FlurryAgent D generating report 
4359   FlurryAgent D Sending report to: http://data.flurry.com/aap.do 
4359   FlurryAgent D Report successful 
4359   FlurryAgent D Processing report response 
4359   FlurryAgent D Done sending initial agent report 
+0

Non ho ricevuto alcun evento o sessione in stato di raffica. –

risposta

6

Ottengo messaggi di registro quando si utilizza Flurry Analytics SDK v3.1.0 (creato e scaricato questa settimana da Flurry).

Ecco il codice rilevante che configurato Flurry per scrivere messaggi nel log Android:

@Override 
protected void onStart() { 
    super.onStart(); 
    FlurryAgent.onStartSession(this, FLURRY_API_KEY); 
    FlurryAgent.setLogEnabled(true); 
    FlurryAgent.setLogEvents(true); 
    FlurryAgent.setLogLevel(Log.VERBOSE); 

} 

@Override 
protected void onStop() { 
    super.onStop(); 
    FlurryAgent.onEndSession(this); 
} 

E qui è la prova

01-10 11:35:23.310: I/FlurryAgent(3915): loading persistent data: /data/data/com.ader/files/.flurryagent.624f614c 
01-10 11:35:23.310: D/FlurryAgent(3915): Loading API key: ****************RY7Z 
01-10 11:35:23.320: D/FlurryAgent(3915): Loading phoneId: AND2001447e7dcd4d3b 
01-10 11:35:23.320: D/FlurryAgent(3915): Loading session reports 
01-10 11:35:23.320: D/FlurryAgent(3915): Session report added: 1 
01-10 11:35:23.320: D/FlurryAgent(3915): Session report added: 2 
01-10 11:35:23.320: D/FlurryAgent(3915): Persistent file loaded 
01-10 11:35:23.560: D/FlurryAgent(3915): generating report 
01-10 11:35:23.570: D/FlurryAgent(3915): Sending report to: http://data.flurry.com/aap.do 
01-10 11:35:29.610: D/FlurryAgent(3915): Report successful 
01-10 11:35:29.610: D/FlurryAgent(3915): Done sending initial agent report 

Credo che il trucco è la seguente chiamata non lo fai hanno:

FlurryAgent.setLogLevel(Log.VERBOSE); 
+0

Grazie per la tua risposta .. Ho avuto accesso all'evento il giorno successivo a raffica e ancora non accede a logcat .. –

+0

Hai aggiunto la chiamata a setLogLevel (Log.VERBOSE)? Inoltre, prova a fare una build pulita e disinstalla la tua app prima di reinstallarla solo per vedere se qualche gremlin si nasconde nel processo di compilazione e distribuzione. – JulianHarty

+0

Si prega inoltre di inviare il log generato quando si esegue l'app con cui si hanno problemi. Questo dovrebbe includere almeno: "startng flurry session ..." quindi sappiamo che la chiamata a onStartSession() si verifica. E puoi confermare quale versione di Flurry hai problemi con? – JulianHarty

0

Questo funziona per me:

@Override 
protected void onStart() { 
    super.onStart(); 
    FlurryAgent.setLogEnabled(true); 
    FlurryAgent.setLogLevel(Log.VERBOSE); 
    FlurryAgent.onStartSession(this, "XXXXXXXXXXXXXXX"); 
    //System.out.println("Started Flurry"); 
} 

@Override 
protected void onStop() { 
    super.onStop();  
    FlurryAgent.onEndSession(this); 
    //System.out.println("Stopped Flurry"); 
} 
+1

So che sta funzionando, ma quando usi 'FlurryAgent' direttamente in Activity. Avevo creato un'altra classe di navigazione Flurry che non funzionava. Perché penso di dare un contesto tramite il metodo 'init' e non so perché Flurry abbia problemi con' context'. Ogni sviluppatore si lamenta di 'context'. –

0

Per coloro che avranno lo stesso problema come me di recente.

FlurryAgent.setLogEnabled(true); 
FlurryAgent.setLogEvents(true); 
FlurryAgent.setLogLevel(Log.VERBOSE); 
// must be last one 
FlurryAgent.init(context, "some key"); 

Stavo inizializzando Flurry in classe che estende Application. Era importante che la chiamata init fosse l'ultima.

E 'menzionato here, in fondo alla pagina per 3 metodi ci sono:

... Questo dovrebbe essere chiamato prima di init.