Zbar-сканер QR-кода, сбой в Android Studio
Я загрузил из Git последний сканер QR-кода zBar (SDK 0.2). Я пытаюсь реализовать его в своем приложении. Я работаю на Android Studio.
что я сделал:
- Я скопировал zBar.jar в папку libs моего проекта.
- Я создал *.файлы jar от "amerabi", "amerabi-v7a", " x86 " путем их zip и изменения их формата на *.сосуд.
- Я скопировал амераби.банка, amerabi-v7a.jar и х86.jar to libs папка моя Проект.
-
нет необходимости что-либо менять в gradle, потому что он уже настроен для импорта каждого файла jar из проектов libs. См. ниже:
dependencies { compile 'com.android.support:support-v4:18.0.+' compile 'com.crashlytics.android:crashlytics:1.+' compile fileTree(dir: 'libs', include: '*.jar') compile project(':FacebookSDK') compile project(':actionbarsherlock') compile project(':Aviary-SDK') }
-
каждый класс формы zbar lib можно увидеть, поэтому я настроил все. Я запускаю ScannerActivity и в onCreate получаю ошибку в этой строке:
scanner = new ImageScanner(); // this line shows an error scanner.setConfig(0, Config.X_DENSITY, 3); scanner.setConfig(0, Config.Y_DENSITY, 3);
таким образом, реализация 1: 1 такая же, как в Примере.
моя ошибка log:
java.lang.UnsatisfiedLinkError: Couldn't load zbarjni from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/pl.toptof.android.debug-2.apk"],nativeLibraryDirectories=[/data/app-lib/pl.toptof.android.debug-2, /vendor/lib, /system/lib]]]: findLibrary returned null
пожалуйста, помогите мне с этой проблемой. Я не знаю, почему моя Android Studio может видеть lib, но не может использовать его так же, как он используется в Примере.
4 ответов
Я думаю, вы ошиблись в своих структурах банок. Если вы хотите сделать пакет jar из *.поэтому libs вы должны использовать такую структуру:
/ lib / armeabi/*.так что
Это пример структуры каталогов для вашей библиотеки:
lib/
---/armeabi
------/libiconv.so
------/libzbarjni.so
и, конечно, вы должны переименовать окончательный пакет из lib.zip в armeabi.сосуд. В вашем случае вы должны повторить этот процесс для armeabi-v7a и x86.
решение слишком сложное. Что я сделал, чтобы заставить его работать, это использовать файлы jar, уже скомпилированные в примере решения из . Скопируйте их в папку lib и обязательно добавьте в файл gradle. Однако, ваша линия compile fileTree(dir: 'libs', include: '*.jar')
следует сделать трюк.
поставить каталогах норм, armeabi-v7a и x86 в подкаталог native-libs в корневой папке проекта. Затем добавьте эти настройки в свой построить.Gradle в:
android {
// other settings
sourceSets {
main {
jni.srcDirs=[] //to suppress makefiles autogeneration
jniLibs.srcDirs=['native-libs'] //native *.so in armeabi x86 and mips to include
}
}
}
в результате .apk должен иметь собственные библиотеки, включенные сейчас.
вам лучше проверить, есть ли у вас самая новая версия ZBar в зависимостях в вашем приложении.файл gradle. Получение последней версии работало для меня и решало все проблемы, такие как неспособность найти libzbarjni.так и либиконв.так что