Не удалось найти исключение класса Facebook на Android App. Как? - PullRequest
0 голосов
/ 20 февраля 2010

Я делаю приложение Facebook в моем проекте.

Я прошел этот шаг, пример приложения по этой ссылке.

http://code.google.com/p/fbconnect-android/downloads/list

теперь я получил это исключение в своем Logcat.

02-20 22:02:29.020: INFO/ActivityManager(58): Starting activity: Intent { cmp=com.example.brown/.Brown_FaceBook }
02-20 22:02:29.409: ERROR/dalvikvm(236): Could not find class 'com.codecarpet.fbconnect.FBPermissionActivity', referenced from method com.example.brown.Brown_FaceBook.askPermission
02-20 22:02:29.418: WARN/dalvikvm(236): VFY: unable to resolve const-class 78 (Lcom/codecarpet/fbconnect/FBPermissionActivity;) in Lcom/example/brown/Brown_FaceBook;
02-20 22:02:29.418: DEBUG/dalvikvm(236): VFY: replacing opcode 0x1c at 0x0002
02-20 22:02:29.428: DEBUG/dalvikvm(236): Making a copy of Lcom/example/brown/Brown_FaceBook;.askPermission code (125 bytes)
02-20 22:02:29.438: INFO/dalvikvm(236): Could not find method com.codecarpet.fbconnect.FBSession.getUid, referenced from method com.example.brown.Brown_FaceBook.checkPermission
02-20 22:02:29.448: WARN/dalvikvm(236): VFY: unable to resolve virtual method 124: Lcom/codecarpet/fbconnect/FBSession;.getUid ()Ljava/lang/Long;
02-20 22:02:29.448: DEBUG/dalvikvm(236): VFY: replacing opcode 0x6e at 0x0009
02-20 22:02:29.457: DEBUG/dalvikvm(236): Making a copy of Lcom/example/brown/Brown_FaceBook;.checkPermission code (112 bytes)
02-20 22:02:29.469: ERROR/dalvikvm(236): Could not find class 'com.codecarpet.fbconnect.FBFeedActivity', referenced from method com.example.brown.Brown_FaceBook.publishFeed
02-20 22:02:29.469: WARN/dalvikvm(236): VFY: unable to resolve const-class 75 (Lcom/codecarpet/fbconnect/FBFeedActivity;) in Lcom/example/brown/Brown_FaceBook;
02-20 22:02:29.478: DEBUG/dalvikvm(236): VFY: replacing opcode 0x1c at 0x0002
02-20 22:02:29.478: DEBUG/dalvikvm(236): Making a copy of Lcom/example/brown/Brown_FaceBook;.publishFeed code (68 bytes)
02-20 22:02:29.497: WARN/dalvikvm(236): Unable to resolve superclass of Lcom/example/brown/Brown_FaceBook$FBSessionDelegateImpl; (81)
02-20 22:02:29.497: WARN/dalvikvm(236): Link of class 'Lcom/example/brown/Brown_FaceBook$FBSessionDelegateImpl;' failed
02-20 22:02:29.507: ERROR/dalvikvm(236): Could not find class 'com.example.brown.Brown_FaceBook$FBSessionDelegateImpl', referenced from method com.example.brown.Brown_FaceBook.onCreate
02-20 22:02:29.521: WARN/dalvikvm(236): VFY: unable to resolve new-instance 95 (Lcom/example/brown/Brown_FaceBook$FBSessionDelegateImpl;) in Lcom/example/brown/Brown_FaceBook;
02-20 22:02:29.528: DEBUG/dalvikvm(236): VFY: replacing opcode 0x22 at 0x0015
02-20 22:02:29.528: DEBUG/dalvikvm(236): Making a copy of Lcom/example/brown/Brown_FaceBook;.onCreate code (292 bytes)
02-20 22:02:29.537: WARN/dalvikvm(236): Unable to resolve superclass of Lcom/example/brown/Brown_FaceBook$FBSessionDelegateImpl; (81)
02-20 22:02:29.537: WARN/dalvikvm(236): Link of class 'Lcom/example/brown/Brown_FaceBook$FBSessionDelegateImpl;' failed
02-20 22:02:29.547: ERROR/dalvikvm(236): Could not find class 'com.example.brown.Brown_FaceBook$FBSessionDelegateImpl', referenced from method com.example.brown.Brown_FaceBook.onCreate
02-20 22:02:29.558: WARN/dalvikvm(236): VFY: unable to resolve new-instance 95 (Lcom/example/brown/Brown_FaceBook$FBSessionDelegateImpl;) in Lcom/example/brown/Brown_FaceBook;
02-20 22:02:29.558: DEBUG/dalvikvm(236): VFY: replacing opcode 0x22 at 0x007e
02-20 22:02:29.570: DEBUG/AndroidRuntime(236): Shutting down VM
02-20 22:02:29.577: WARN/dalvikvm(236): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
02-20 22:02:29.587: ERROR/AndroidRuntime(236): Uncaught handler: thread main exiting due to uncaught exception
02-20 22:02:29.597: ERROR/AndroidRuntime(236): java.lang.NoClassDefFoundError: com.example.brown.Brown_FaceBook$FBSessionDelegateImpl
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at com.example.brown.Brown_FaceBook.onCreate(Brown_FaceBook.java:80)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at android.os.Looper.loop(Looper.java:123)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at  android.app.ActivityThread.main(ActivityThread.java:4363)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at java.lang.reflect.Method.invokeNative(Native Method)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at java.lang.reflect.Method.invoke(Method.java:521)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
02-20 22:02:29.597: ERROR/AndroidRuntime(236):     at dalvik.system.NativeStart.main(Native Method)

спасибо.

Ответы [ 3 ]

1 голос
/ 21 февраля 2010

Я видел подобные ошибки раньше, когда Eclipse, кажется, забывал включать классы из другого проекта, от которого вы зависите, в ваше приложение для Android.Каким-то образом он может войти в состояние, в котором он может видеть классы для компиляции и проверки, что нет проблем с манифестом и т. Д., И все же не упаковывать их.Иногда это можно исправить, удалив зависимость и вернув ее обратно.

После загрузки с этого сайта у вас должно быть два проекта.Проект Android называется fbconnect-sample.Проект Java называется fbconnect-android.Сначала убедитесь, что у вас есть оба проекта, и что ни один из них не показывает никаких проблем со сборкой в ​​представлении Eclipse Problem.Необходимо проверить меню Проект, затем Автоматически построить.В проводнике пакетов должны быть указаны «fbconnect-android» и «fbconnect-sample».Меню Окно -> Показать представление -> Проблемы не должны отображать проблемы со сборкой.

Если у вас нет обоих проектов, они создаются путем перехода в меню Файл, затем Импортировать ..., затем Импортировать существующие проекты в рабочую область, а затем выбрать каталог fbconn, извлеченный из fbconnect-android.почтовый скачать.Оба проекта должны отображаться в разделе «Проекты»: в диалоговом окне выберите «Готово».Проекту fbconnect-android требуется переменная classpath ANDROID_JAR, установленная в android.jar из SDK, чтобы построить без проблем.

Теперь, чтобы попробовать удалить зависимость и вернуть ее обратно, нажмите правой кнопкой мыши наfbconnect-sample project в Project Explorer, выберите Properties, затем Java Build Path, затем Projects, затем fbconnect-android, затем Remove, затем OK.Теперь снова щелкните правой кнопкой мыши fbconnect-sample, затем Java Build Path, затем Projects, затем Add, затем fbconnect-android, затем OK, затем OK.Иногда после этого Eclipse снова начинает упаковывать классы из проекта, от которого вы зависите в APK.В моем случае для этой загрузки образец без проблем работал на моем телефоне Droid.Достаточно просто импортировать существующие проекты и установить переменную classpath, чтобы устранить все проблемы со сборкой.

0 голосов
/ 15 октября 2013

Пакеты должны быть перечислены в разделе «Зависимости Android» в проводнике пакетов, если вы хотите, чтобы они оказались в реальном пакете развертывания. Если он указан в указанной библиотеке, компилятор увидит его, но вы получите ошибки времени выполнения.

View from package explorer

Чтобы получить пакет, перейдите в Свойства проекта, выберите Android, а затем добавьте нужную библиотеку в раздел «Библиотека» (в моем примере я ссылался на банку из проекта FacebookSDK)

View from project properties / Android

0 голосов
/ 19 сентября 2011

Наконец-то мне удалось решить эту проблему путем добавления библиотеки Facebook в качестве андроида (!), А не ссылки на Java + прочтите подробные документы

http://developers.facebook.com/docs/guides/mobile/android/#ref

...