我正在尝试在Android Studio项目中添加 armeabi .so 文件。这些将由SDK的 .jar 文件访问。基本上我正在使用兄弟打印机SDK并将它们集成到我的应用程序中。 问题是,.jar文件是在Android Studio项目中获取的,但是当我尝试访问SDK的方法时,它会给我这个错误:
java.lang.UnsatisfiedLinkError: Couldn't load createdata from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.wingoku.printerapp-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.wingoku.printerapp-1, /vendor/lib, /system/lib]]]: findLibrary returned null
at java.lang.Runtime.loadLibrary(Runtime.java:358)
at java.lang.System.loadLibrary(System.java:526)
at com.brother.ptouch.sdk.JNIWrapper.<clinit>(JNIWrapper.java:16)
at com.brother.ptouch.sdk.Printer.setPrinterInfo(Printer.java:887)
at com.wingoku.printerapp.print.printprocess.BasePrint.setPrinterInfo(BasePrint.java:73)
at com.wingoku.printerapp.print.printprocess.BasePrint$PrinterThread.run(BasePrint.java:433)
我已尝试将armeabi文件夹放在src/main/jniLibs
内,但 .so 文件未被提取,我一直收到上述异常。
我能解决什么问题?
答案 0 :(得分:0)
帮助我的方法是:
在桌面上创建一个名为'lib'的目录 将你的jnilibs文件夹带上* .so文件并将其粘贴到lib中。
现在zip your lib
文件夹
然后将其扩展名从.zip
更改为.jar
这是lib.zip
到lib.jar
现在将其复制到项目的libs文件夹中,并通过在依赖项中添加此行来更新gradle:
compile fileTree(include: 'lib.jar',dir:'libs')
这是加载任何jnilibs最安全的方法。我用opencv libs
应用它如果问题仍然存在,请在您的应用中添加NDK-root的引用。
希望这会有所帮助。