Устранить ошибку при загрузке «dexed» JAR на Android - PullRequest
0 голосов
/ 16 июня 2010

Я пытаюсь сделать комплект для Felix на Android, который может делать фотографии регулярно. Весь код хорошо компилируется и может быть решен Феликсом, но когда я пытаюсь его запустить, я получаю исключение (java.lang.VerifyError) и эту трассировку в logcat:

I/dalvikvm(  738): Failed resolving Lbarcode/android/CameraHandler; interface 1 'Landroid/hardware/Camera$PictureCallback;'
W/dalvikvm(  738): Link of class 'Lbarcode/android/CameraHandler;' failed
E/dalvikvm(  738): ERROR: defineClass(0x40093110, barcode.android.CameraHandler, 0x400c93b8, 0, 1769, 0x40204708)

Класс CameraHandler открывает объект Camera и реализует PictureCallback и AutoFocusCallback.

Файл .jar был «dexed», через простое «dx --dex --output = classes.dex ... && aapt add ... classes.dex».

Я не знаю, почему возникает эта ошибка, поэтому, если у кого-то есть решение ...

Спасибо

1 Ответ

0 голосов
/ 30 июня 2010

Похоже, что вы пропустили некоторые необходимые классы в качестве аргументов для dx.

Вы добьетесь большего успеха, если будете использовать плагин Eclipse для Android или create project действие в инструменте командной строки Android.Каждый из них позаботится о запуске правильных инструментов в правильном порядке для создания Android-apk по спецификации.

$ ~/android-sdk/tools/android --help

Usage:
  android [global options] action [action options]

...

Action "create project":
  Creates a new Android Project.
Options:
  -n --name     Project name
  -t --target   Target id of the new project [required]
  -p --path     Location path of new project [required]
  -k --package  Package name [required]
  -a --activity Activity name [required]
...