我在我的安卓项目中使用埃切林,就像解释这里一样,它工作正常。但是,当我试图将metaioSDK库添加到项目中时(只添加它,甚至不使用它),我就不能再运行了。我得到:
07-17 14:20:34.194: E/AndroidRuntime(3681): FATAL EXCEPTION: Thread-92046
07-17 14:20:34.194: E/AndroidRuntime(3681): java.lang.UnsatisfiedLinkError: Couldn't load echoprint-jni from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.example.kkt-1.apk,libraryPath=/data/app-lib/com.example.kkt-1]: findLibrary returned null
07-17 14:20:34.194: E/AndroidRuntime(3681): at java.lang.Runtime.loadLibrary(Runtime.java:355)
07-17 14:20:34.194: E/AndroidRuntime(3681): at java.lang.System.loadLibrary(System.java:525)
07-17 14:20:34.194: E/AndroidRuntime(3681): at edu.gvsu.masl.echoprint.Codegen.<clinit>(Codegen.java:44)
07-17 14:20:34.194: E/AndroidRuntime(3681): at edu.gvsu.masl.echoprint.AudioFingerprinter.run(AudioFingerprinter.java:199)
07-17 14:20:34.194: E/AndroidRuntime(3681): at java.lang.Thread.run(Thread.java:841)文件libechoprint-jni.so位于"/libs/armeabi/“文件夹中,我称之为System.loadLibrary("echoprint-jni"),它在添加metaio库之前工作。为什么以后就不起作用了?询问是否需要其他细节/打印屏幕/等等。
编辑:
我注意到EchoprintLibrary有libechoprint-jni.so in:/libs/armeabi/
metaioSDK中有大约7个.so文件:/libs/armeabi-v7a/
在我的手机上,当应用程序只使用爱克灵特时,我可以在
/data/data/com.example/kkt/lib/
/data/app-lib/com.example.kkt-2/当我将metaioSDK添加到混合文件中时,libechoprint-jni.so是找不到的,但是所有的metaio .so文件都可以在
/data/data/com.example/kkt/lib/
/data/app-lib/com.example.kkt-1/因此,我想,最终,可能是一个如何拥有多个来源的.so库的问题。
发布于 2014-07-18 22:12:27
我通过在我自己的项目中移动E筷rint源文件并移动libechoprint-jni.so在metaio /armeabi-v7a文件夹中的其他.so文件来实现它的工作。基本上,所有.so文件都必须在一个文件夹/项目下分组。可能不是每个人都能行,但对我来说很管用。
https://stackoverflow.com/questions/24803837
复制相似问题