2012-05-14 2 views
5

HI вот небольшой код, который я выбрал из примера кода google analytics.Android google analytics tracker NoClassdefFoundError

tracker = GoogleAnalyticsTracker.getInstance(); 

tracker.startNewSession("UA-YOUR-ACCOUNT-HERE", this); 
    setContentView(R.layout.main); 
    Button createEventButton = (Button)findViewById(R.id.NewEventButton); 
    createEventButton.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      tracker.trackEvent(
        "Clicks", // Category 
        "Button", // Action 
        "clicked", // Label 
        77);  // Value 
     } 
    }); 

Ошибка:

'05-14 13:52:36.599: E/AndroidRuntime(7367): FATAL EXCEPTION: main 
05-14 13:52:36.599: E/AndroidRuntime(7367): java.lang.NoClassDefFoundError: com.google.android.apps.analytics.GoogleAnalyticsTracker 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at com.google.android.apps.analytics.sample.TestActivity.onCreate(TestActivity.java:19) 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at android.os.Looper.loop(Looper.java:130) 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at android.app.ActivityThread.main(ActivityThread.java:3687) 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at java.lang.reflect.Method.invoke(Method.java:507) 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867) 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) 
05-14 13:52:36.599: E/AndroidRuntime(7367):  at dalvik.system.NativeStart.main(Native Method) 
+0

у добавил permssion? android.permission.ACCESS_NETWORK_STATE? Если нет, то добавьте его. также перепроверьте добавленную библиотеку google_analytics –

+0

Также вы включили банку googleanalytics в свой проект? поскольку он жалуется, что не смог его найти. Возможно, вы перепутали версии файла jar – pengibot

+0

, который является вашей версией adt –

ответ

13

Я имел эту проблему после обновления ADT.

Я хранили все мои файлы JAR в папке с именем «lib» и добавлял банки в путь сборки обычным способом Eclipse. Это отлично работало до моего обновления.

После моего обновления я получал NoClassDefFoundError для класса, который я мог отчетливо видеть, был включен в банку (проверяя классы ReferencedLibraries).

Решение заключалось в том, чтобы удалить мои банки из пути сборки и переименовать мою папку «lib» в «libs». Это соглашение против муравьев, и похоже, что новый ADT находит и включает библиотеки в файл .apk. Как только я это сделал, все сработало нормально.

+0

Хорошо работает Спасибо – Sukesh

+0

Спасибо человеку .. Это помогло. :) – GrIsHu

28

Чтобы решить проблему с ошибкой NoClassDefFoundError, когда вы используете библиотеку Google Analytics v2beta, вам нужно отметить эту библиотеку как «экспортированный».

Как?

  • Добавить библиотеку: Project -> Свойства -> Java Build Path -> Библиотеки -> Add External JARs ...
  • Затем перейдите в раздел "Порядок и экспорт" в том же окне, и отметьте эту библиотеку как «экспортировано» с помощью флажка.

Ваш проект теперь найдет класс Analytics при его запуске!

Подробнее и почему это произошло here

+0

Сначала я попробовал это решение, и это сработало для меня. Спасибо. – operand

+0

это тоже работало – Guru

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