2012-05-14 12 views
5

HI tutaj jest mały kod i wybrałem go z przykładowego kodu google analytics.Android google narzędzie do śledzenia statystyk 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 
     } 
    }); 

Błąd:

'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

u dodał permssion? android.permission.ACCESS_NETWORK_STATE? jeśli nie, to dodaj. także ponownie sprawdź dodaną bibliotekę google_analytics –

+0

Czy zawierasz również słoik googleanalytics do swojego projektu? ponieważ narzeka, że ​​nie może go znaleźć. Może masz pomieszane wersje pliku JAR – pengibot

+0

, który jest twoją wersją ADT –

Odpowiedz

13

miałem ten problem po aktualizacji ADT.

Przechowywałem wszystkie moje pliki JAR w folderze o nazwie "lib" i dodając słoiki do ścieżki budowania w normalny sposób Eclipse. To działało dobrze do mojej aktualizacji.

Po aktualizacji otrzymywałem NoClassDefFoundError dla klasy, którą mogłem wyraźnie zobaczyć, było zawarte w słoiku (sprawdzanie klas klas referencyjnych).

Rozwiązaniem było usunięcie moich słoików ze ścieżki budowania i zmiana nazwy folderu "lib" na "libs". Jest to konwencja mrówek i wydaje się, że nowy sposób odnajdowania ADT obejmuje biblioteki w pliku .apk. Kiedy to zrobiłem, wszystko działało dobrze.

+0

Dobrze działa Dziękuję – Sukesh

+0

Dzięki człowieku .. Pomogło. :) – GrIsHu

28

Aby rozwiązać problem z błędem NoClassDefFoundError gdy używasz biblioteki Google Analytics v2beta, trzeba znakiem tej biblioteki jako „eksportowany”.

Jak?

  • Dodaj swoją bibliotekę: Project -> Właściwości -> Java Build Path -> Biblioteki -> Dodaj zewnętrzne JAR ...
  • Następnie przejdź do "Zakonu i eksportu" w tym samym oknie, i zaznaczyć tę bibliotekę jako "wyeksportowany" z polem wyboru.

Twój proyect znajdzie teraz klasę Analytics, gdy ją uruchomisz!

Więcej szczegółów i dlaczego tak się stało here

+0

Najpierw wypróbowałem to rozwiązanie i zadziałało to dla mnie. Dziękuję Ci. – operand

+0

to działało również dla mnie – Guru

Powiązane problemy