Android: Java Невозможно найти класс во время выполнения из созданного мной JAR

1

Я работаю над примером 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.

В этот момент мой проект, кажется, строится просто отлично (без ошибок). Изображение 174551

Шаг 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 для моего проекта.

Изображение 174551

  • 0
    Где определен класс Example? И где это используется?
Теги:
jar

3 ответа

4
Лучший ответ

Когда вы устанавливаете путь сборки Java, вы только это сделали: установите путь сборки самостоятельно. Это привело к успешному компиляции. Однако, когда создается файл .apk, система не знает, что вам нужны внешние файлы jar, которые должны быть связаны вместе с вашими исходными файлами.

Я раньше этого не делал, но похоже, что если вы щелкните правой кнопкой мыши по проекту com_facebook_android и выберите "Свойства" > "Android", вы должны выбрать "Ящик библиотеки". Затем перейдите в свойства Android вашего основного проекта и нажмите "Добавить..." и выберите внешнюю библиотеку. Я считаю, что это сделает то, что вам нужно.

EDIT: Это называется библиотечным проектом и является довольно новым дополнением к SDK. Дополнительную информацию можно найти на http://developer.android.com/guide/developing/eclipse-adt.html#libraryProject

  • 0
    Привет, Шон. О, кажется, ты передал мне ключи от королевства, а я не могу найти дыру в ключе. Диалог (свойства, android) не имеет диалогового окна «Библиотека». Разве не кажется, что мне нужно сказать включенному проекту (helloGoogleMaps), а не включенному (facebookSdk), что он должен связать JAR?
  • 0
    Да, вы говорите включающему проекту, что он должен связать JAR. Однако это только дает вам выбор проектов, которые объявлены как библиотеки.
Показать ещё 7 комментариев
0

ok, мне действительно не нравится то, что я сделал, чтобы заставить меня пройти мимо этого. 1) Я добавил .jar как внешнюю банку.
2) Затем я также включил файл .apk как .jar(а не внешнюю банку), мне пришлось выбирать это непосредственно из com_facebook_android/bin/com_facebook_android.apk.

похоже, что я решаю это с помощью грубой силы, и что-то еще более уместно.

0

Я думаю, вам нужно будет добавить com.facebook.android в качестве библиотеки в свой проект...

если я не ошибаюсь, это android facebook sdk.

Вы можете проверить эту ссылку...

См. Инструкции здесь:

https://github.com/facebook/facebook-android-sdk

Надеюсь, это поможет вам........
Thanksss

  • 0
    Вив - я работаю с тем, что вы имеете в виду. проблема в том, что мой проект включает / связывает файл .JAR, который я создал из этого facebookSDK.
  • 0
    см комментарии ниже
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню