Я работаю над примером facebook-sdk и пытаюсь использовать коллекцию классов, предоставляемую как .JAR. Я относительно новичок в java и eclipse, поэтому я ожидаю, что сделаю очевидную ошибку.
Проблема в том, что все, кажется, компилируется отлично, но когда я запускаю проект (используя эмулятор android), dalvik vm не может найти первый класс, я ссылаюсь на этот facebook sdk. (com/facebook/android/Facebook.class)
В стороне, если я копирую источник непосредственно в свой проект в качестве дополнительного пакета, все работает нормально.
Шаг 1: Я экспортировал проект com_facebook_android как файл .JAR. (проект правой кнопки мыши, экспорт, java/jar файл) Я выбираю c:\data\jag\jar как мое местоположение для сохранения facebookdk.jar.
Шаг 2: Я ударил свойства в проекте HelloGoogleMaps, Выбранный путь построения Java, Библиотеки, Добавить внешние JARS... Я непосредственно выбрал файл c:\data\jag\jar\facebooksdk.jar.
В этот момент мой проект, кажется, строится просто отлично (без ошибок).
Шаг 3. Отладка проекта и получение ошибки:
[2010-11-19 09:05:08 - Пример] ActivityManager: Ошибка: класс действия {com.facebook.android/com.facebook.android.Example} не существует. [2010-11-19 09:05:11 - Пример] Начальная деятельность com.facebook.android.Example на устройстве [2010-11-19 09:05:12 - Example] Новый пакет еще не зарегистрирован в системе. Ожидание 3 секунды перед следующей попыткой.
[2010-11-19 09:05:15 - Пример] Начальная деятельность com.facebook.android.Example на устройстве
[2010-11-19 09:05:17 - Пример] ActivityManager: Starting: Intent {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] cmp = com.facebook.android/.Пример}
[2010-11-19 09:05:17 - Example] Новый пакет еще не зарегистрирован в системе. Ожидание 3 секунды перед следующей попыткой.
[2010-11-19 09:05:20 - Пример] Начало действия com.facebook.android.Example на устройстве
[2010-11-19 09:05:21 - Пример] ActivityManager: Starting: Intent {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] cmp = com.facebook.android/.Пример}
[2010-11-19 09:05:21 - Пример] ActivityManager: Тип ошибки 3
[2010-11-19 09:05:21 - Пример] ActivityManager: Ошибка: класс действия {com.facebook.android/com.facebook.android.Example} не существует.
SHAWN - вот свойства Android для моего проекта.
Когда вы устанавливаете путь сборки Java, вы только это сделали: установите путь сборки самостоятельно. Это привело к успешному компиляции. Однако, когда создается файл .apk, система не знает, что вам нужны внешние файлы jar, которые должны быть связаны вместе с вашими исходными файлами.
Я раньше этого не делал, но похоже, что если вы щелкните правой кнопкой мыши по проекту com_facebook_android и выберите "Свойства" > "Android", вы должны выбрать "Ящик библиотеки". Затем перейдите в свойства Android вашего основного проекта и нажмите "Добавить..." и выберите внешнюю библиотеку. Я считаю, что это сделает то, что вам нужно.
EDIT: Это называется библиотечным проектом и является довольно новым дополнением к SDK. Дополнительную информацию можно найти на http://developer.android.com/guide/developing/eclipse-adt.html#libraryProject
ok, мне действительно не нравится то, что я сделал, чтобы заставить меня пройти мимо этого.
1) Я добавил .jar как внешнюю банку.
2) Затем я также включил файл .apk как .jar(а не внешнюю банку), мне пришлось выбирать это непосредственно из com_facebook_android/bin/com_facebook_android.apk.
похоже, что я решаю это с помощью грубой силы, и что-то еще более уместно.
Я думаю, вам нужно будет добавить com.facebook.android в качестве библиотеки в свой проект...
если я не ошибаюсь, это android facebook sdk.
Вы можете проверить эту ссылку...
См. Инструкции здесь:
https://github.com/facebook/facebook-android-sdk
Надеюсь, это поможет вам........
Thanksss