无法访问Android Studio中的Native .so文件

时间:2016-06-24 12:29:30

标签: android sdk libraries

我正在尝试在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 文件未被提取,我一直收到上述异常。

我能解决什么问题?

1 个答案:

答案 0 :(得分:0)

帮助我的方法是:

在桌面上创建一个名为'lib'的目录 将你的jnilibs文件夹带上* .so文件并将其粘贴到lib中。

现在zip your lib文件夹 然后将其扩展名从.zip更改为.jar 这是lib.ziplib.jar

现在将其复制到项目的libs文件夹中,并通过在依赖项中添加此行来更新gradle:

compile fileTree(include: 'lib.jar',dir:'libs')

这是加载任何jnilibs最安全的方法。我用opencv libs

应用它

如果问题仍然存在,请在您的应用中添加NDK-root的引用。

希望这会有所帮助。