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