Класс не найден (ADT 22)

Я изучаю Look API (из Samsung Mobile SDK). Для этого я поместил образец из Samsung Mobile SDK в свое приложение. Ничего сложного, просто создается Activity и запускается texview из одного из классов Look.

Когда я запускаю приложение на симуляторе (открывая действие smartclip), я получаю сообщение об ошибке от dalvikvm. Из ЛогКэт:

Could not find class 'com.samsung.android.sdk.look.smartclip.SlookSmartClip$1', referenced from method com.samsung.android.sdk.look.smartclip.SlookSmartClip.setDataExtractionListener

Я использую комплект ADT с Mobile SDK 1.0.2 (Look 1.0.0). Симулятор устройства Android 4.2.2 без поддержки Look (но это не беда, так как все файлы экспортируются). Я убедился, что проект правильно настроен для экспорта look.jar в результирующий apk-файл. Я проверил, что все внешние библиотеки экспортируются в apk, и деиндексировал получившийся class.dex, чтобы убедиться, что класс SlookSmartClip$1 действительно существует.

Возможно, этот вопрос более общий для проблемы с ADT 22 + сторонней библиотекой jar. Но почти всегда люди не экспортируют файлы должным образом, здесь у меня нет этой проблемы.

Вы знаете, в чем проблема?

PS: я попытался отключить частную библиотеку Android в экспорте. После этого библиотеки не появляются ни в bin/dexedLibs, ни в apk (classes.dex). После повторной проверки (постоянная очистка проекта) они появляются в bin/dedexedLibs и упакованы в apk в class.dex. Я не понимаю, как dalvikvm не может их найти...


person laser    schedule 20.11.2013    source источник
comment
Хм... кажется, мне удалось запустить apk без ошибки ClassNotFound после перехода с JavaRE 1.6 на 1.7. На самом деле мои настройки изначально были установлены на 1.7, а некоторое время назад я просто поставил их на 1.6, следуя одному из предложений. После этого я попытался удалить-›очистить-›добавить-очистить банки. Переустановите ADT... многое другое... и теперь попытался вернуть Java 1.6 обратно к исходной версии 1.7. Таким образом, я действительно не знаю, что помогло в середине.   -  person laser    schedule 20.11.2013
comment
Нет, ошибаюсь... ошибка не исчезла.   -  person laser    schedule 20.11.2013


Ответы (1)


Эта ошибка возникает только в том случае, если библиотека не включена должным образом, вам нужно добавить банку lib, предоставленную samsung, в проект.

right click project-> properties -> java build path -> libraries.

и добавьте свою банку

person Ahmad Dwaik 'Warlock'    schedule 20.11.2013
comment
Он уже находится в библиотеках в более общем разделе Частные библиотеки Android. - person laser; 20.11.2013
comment
это должно быть в частных библиотеках Android? Разве они не предоставляют образец проекта или что-то в этом роде? - person Ahmad Dwaik 'Warlock'; 20.11.2013
comment
Хм... не знаю, но если он там (в частной библиотеке Android), то значит уже видел и трактовал так же, как вы туда явным образом добавляете банку. Для начала я просто импортировал их пример проекта в свой проект eclipse (поэтому я уже пытаюсь скомпилировать и запустить пример проекта). - person laser; 20.11.2013