Google Analytics V2 SDK для Android EasyTracker дает ошибки

Я следил за учебником для нового Google Analytics V2 SDK для Android, расположенного здесь:

https://developers.google.com/analytics/devguides/collection/android/v2/

К сожалению, всякий раз, когда я запускаю приложение, отчет не работает, и это сообщения, которые logcat дает мне:

07-09 09:13:16.978: W/Ads(13933): No Google Analytics: Library Incompatible.
07-09 09:13:16.994: I/Ads(13933): To get test ads on this device, call adRequest.addTestDevice("2BB916E1BD6BE6407582A429D763EC71");
07-09 09:13:17.018: I/Ads(13933): adRequestUrlHtml: <html><head><script src="http://media.admob.com/sdk-core-v40.js"></script><script>AFMA_getSdkConstants();AFMA_buildAdURL({"kw":[],"preqs":0,"session_id":"7925570029955749351","u_sd":2,"seq_num":"1","slotname":"a14fd91432961bd","u_w":360,"msid":"com.mysampleapp.sampleapp","js":"afma-sdk-a-v6.0.1","mv":"8013013.com.android.vending","isu":"2BB916E1BD6BE6407582A429D763EC71","cipa":1,"format":"320x50_mb","net":"wi","app_name":"1.android.com.mysampleapp.sampleapp","hl":"en","u_h":592,"carrier":"311480","ptime":0,"u_audio":3});</script></head><body></body></html>
07-09 09:13:17.041: W/ActivityManager(220): Unable to start service Intent { act=com.google.android.gms.analytics.service.START (has extras) }: not found
07-09 09:13:17.049: W/GAV2(13933): Thread[main,5,main]: Connection to service failed 1
07-09 09:13:17.057: W/GAV2(13933): Thread[main,5,main]: Need to call initializea() and be in fallback mode to start dispatch.
07-09 09:13:17.088: D/libEGL(13933): loaded /system/lib/egl/libGLES_android.so
07-09 09:13:17.096: D/libEGL(13933): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so
07-09 09:13:17.096: D/libEGL(13933): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so
07-09 09:13:17.096: D/libEGL(13933): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so

Вот мой код (я отредактировал код, связанный с httppost и т.д.):

    package com.mysampleapp.sampleapp;

    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    import java.util.List;

    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.message.BasicNameValuePair;
    import org.json.JSONArray;
    import org.json.JSONObject;

    import com.google.analytics.tracking.android.EasyTracker;

    import android.app.Activity;
    import android.app.ProgressDialog;
    import android.content.DialogInterface;
    import android.content.DialogInterface.OnCancelListener;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.preference.PreferenceManager;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.ImageView;
    import android.widget.TextView;


    public class viewRandom extends Activity {

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.viewrandom);



            uservote.setVisibility(View.GONE);
            new randomViewClass().execute();

        }

        public void onStart() {
            super.onStart();
            EasyTracker.getInstance().activityStart(this);
        }

        public void onStop() {
            super.onStop();
            EasyTracker.getInstance().activityStop(this);
        }
}

Ответ 1

ОК, я выяснил, в чем проблема с этим. Это было в моем файле analytics.xml:

<?xml version="1.0" encoding="utf-8" ?>
<resources>
    <string name="ga_trackingId">UA-0000000-00</string>
    <bool name="ga_autoActivityTracking">true</bool>
    <bool name="ga_reportUncaughtExceptions">true</bool>
    <string name="ga_sampleFrequency">20</string>
</resources>

Что случилось, когда я вложил свой файл trackingId в файл, eclipse автоматически конвертировал его в "en dash", и Google не смог правильно прочитать мой идентификатор отслеживания. Изменение en dashes на регулярные тире работало отлично, и теперь все в работе.

Ответ 2

Я понимаю, что это старый пост, но я хотел бы дать больше информации, это то же самое, что я получал сегодня.

Принц точно прав, он от тире. Для большинства удалений тире и ввода - снова будет работать. Но как только вы снова очистите проект, он переключит его обратно на en_dash, который может быть проблемой mysho.

Он делает это автоматически из-за Android Lint. Вы можете отключить его, хотя!

Перейдите в свои настройки (я нахожусь на mac, поэтому для меня это Eclipse → Предпочтения)

Перейти к Android Перейти к ошибке Lint Проверка

Вы можете полностью отключить Lint checker или сделать то, что я сделал, отключите только объект en_dash

Либо тонкий, который называется "TypographyDash" в Юзабилити: Типография или поиск "тире" внутри окна поиска. Или это должно было возникнуть с TypographyDashes.

Выделите его и поверните на "Игнорировать" под серьезностью

Оттуда нажмите "Применить", а затем разрешите ему отбрасывать

Надеюсь, что смогу помочь

Ответ 3

Лучше добавить атрибут в тег "resources", как показано ниже:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="TypographyDashes">
  <!--Replace placeholder ID with your tracking ID-->
  <string name="ga_trackingId">UA-12345678-X</string>

  <!--Enable automatic activity tracking-->
  <bool name="ga_autoActivityTracking">true</bool>

  <!--Enable automatic exception tracking-->
  <bool name="ga_reportUncaughtExceptions">true</bool>
</resources>