Przejrzałem samouczek i zrobiłem dokładnie to, co powiedział. Przyznałem uprawnienia INTERNET,COARSE_LOCATION,FINE_LOCATION. Dodano plik jar w bibliotekach. To nie działa. Aplikacja ulega awarii w FlurryAgent.onStartSession(). Oto kod, którego używam, podany przez nich:
@Override
protected void onStart() {
super.onStart();
FlurryAgent.onStartSession(MainActivity.this, MY_KEY);//MY_KEY is key given by them.
}
@Override
protected void onStop() {
super.onStop();
FlurryAgent.onEndSession(this);
}
Oto ślad stosu:
08-28 16:52:49.499: E/AndroidRuntime(18639): FATAL EXCEPTION: main
08-28 16:52:49.499: E/AndroidRuntime(18639): java.lang.NoClassDefFoundError: com.flurry.android.FlurryAgent
08-28 16:52:49.499: E/AndroidRuntime(18639): at com.example.test.MainActivity.onStart(MainActivity.java:31)
08-28 16:52:49.499: E/AndroidRuntime(18639): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1166)
08-28 16:52:49.499: E/AndroidRuntime(18639): at android.app.Activity.performStart(Activity.java:3842)
08-28 16:52:49.499: E/AndroidRuntime(18639): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1719)
08-28 16:52:49.499: E/AndroidRuntime(18639): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1765)
08-28 16:52:49.499: E/AndroidRuntime(18639): at android.app.ActivityThread.access$1500(ActivityThread.java:158)
08-28 16:52:49.499: E/AndroidRuntime(18639): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:996)
08-28 16:52:49.499: E/AndroidRuntime(18639): at android.os.Handler.dispatchMessage(Handler.java:130)
08-28 16:52:49.499: E/AndroidRuntime(18639): at android.os.Looper.loop(SourceFile:351)
08-28 16:52:49.499: E/AndroidRuntime(18639): at android.app.ActivityThread.main(ActivityThread.java:3850)
08-28 16:52:49.499: E/AndroidRuntime(18639): at java.lang.reflect.Method.invokeNative(Native Method)
08-28 16:52:49.499: E/AndroidRuntime(18639): at java.lang.reflect.Method.invoke(Method.java:538)
08-28 16:52:49.499: E/AndroidRuntime(18639): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
08-28 16:52:49.499: E/AndroidRuntime(18639): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:659)
08-28 16:52:49.499: E/AndroidRuntime(18639): at dalvik.system.NativeStart.main(Native Method)
2 odpowiedzi
Oczywiście zawiesza się w czasie wykonywania, możesz sprawdzić, czy twój jar jest eksportowany podczas budowania apk: we właściwościach projektu > Ścieżka budowania Java, przejdź do folderu „Order and Export” i wypełnij pole wyboru odpowiadające twojemu jarowi. I odbuduj.
Cóż, oczywiście nie może znaleźć klasy com.flurry.android.FlurryAgent
. Sprawdź, czy JAR zawiera taką klasę. Jeśli nie, to zły JAR. Jeśli tak, oznacza to, że plik JAR nie został poprawnie uwzględniony w ścieżce kompilacji.
Pamiętaj, że aby wykonać automatyczne dodawanie do ścieżki budowania, musisz dodać ją do katalogu libs/
(a nie lib/
). IIRC zmieniło się to ostatnio wraz z aktualizacją Android SDK. W każdym razie sugeruję dodanie go ręcznie do ścieżki kompilacji, aby się upewnić.
Nie zapomnij wyczyścić i odbudować po zakończeniu.
Podobne pytania
Nowe pytania
android
Android to mobilny system operacyjny Google, używany do programowania lub tworzenia urządzeń cyfrowych (smartfony, tablety, samochody, telewizory, Wear, Glass, IoT). W przypadku tematów związanych z Androidem użyj tagów specyficznych dla Androida, takich jak android-intent, android-activity, android-adapter itp. W przypadku pytań innych niż programowanie lub programowanie, ale związanych ze strukturą Androida, użyj tego linku: https: // android.stackexchange.com.