0

如here所述,我在我的android项目中使用Echoprint,它工作正常。但是,当我尝试将metaioSDK库添加到项目中时(只是添加它,甚至不使用它),我无法再运行 Echoprint。我得到:

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/libs/armeabi/

metaioSDK 在以下位置有大约 7 个 .so 文件:/libs/armeabi-v7a/

在我的手机上,当应用程序只使用 Echoprint 时,我可以libechoprint-jni.so

/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 库的问题。

4

1 回答 1

1

我设法通过在我自己的项目中移动 Echoprint 源文件并将 libechoprint-jni.so 移动到 metaio libs/armeabi-v7a 文件夹中的其他 .so 文件旁边来使其工作。基本上所有 .so 文件都必须分组在一个文件夹/项目下。可能不适用于所有人,但它对我有用。

于 2014-07-18T22:12:27.950 回答