2013-02-24 44 views
3

我使用这个项目作为参考:该代码可在http://roman10.net/src/affmpeg.zip故障编译ffmpeg库和转换器类

我想用ffmpeg编译这个项目,其配置与项目建议的不同。 我编译了一个新的libffmpeg.so并将其添加到项目中。 不过,现在我得到一个“UnsatisfiedLinkError”

02-24 11:05:45.644: D/dalvikvm(11363): Trying to load lib /data/data/roman10.media.ffmpeg/lib/libffmpeg.so 0x47b0ec70 
02-24 11:05:45.680: D/dalvikvm(11363): Added shared lib /data/data/roman10.media.ffmpeg/lib/libffmpeg.so 0x47b0ec70 
02-24 11:05:45.680: D/dalvikvm(11363): No JNI_OnLoad found in /data/data/roman10.media.ffmpeg/lib/libffmpeg.so 0x47b0ec70, skipping init 
02-24 11:05:45.684: D/dalvikvm(11363): Trying to load lib /data/data/roman10.media.ffmpeg/lib/libconverter.so 0x47b0ec70 
02-24 11:05:45.687: I/dalvikvm(11363): Unable to dlopen(/data/data/roman10.media.ffmpeg/lib/libconverter.so): Cannot load library: link_image[1995]: failed to link libconverter.so 
02-24 11:05:45.687: W/dalvikvm(11363): Exception Ljava/lang/UnsatisfiedLinkError; thrown during Lroman10/media/ffmpeg/ffmpegService;.<clinit> 
02-24 11:05:45.687: W/dalvikvm(11363): Class init failed in newInstance call (Lroman10/media/ffmpeg/ffmpegService;) 
02-24 11:05:45.687: D/AndroidRuntime(11363): Shutting down VM 
02-24 11:05:45.687: W/dalvikvm(11363): threadid=1: thread exiting with uncaught exception (group=0x4001d7d0) 
02-24 11:05:45.695: E/AndroidRuntime(11363): FATAL EXCEPTION: main 
02-24 11:05:45.695: E/AndroidRuntime(11363): java.lang.ExceptionInInitializerError 
02-24 11:05:45.695: E/AndroidRuntime(11363): at java.lang.Class.newInstanceImpl(Native Method) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at java.lang.Class.newInstance(Class.java:1429) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2940) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at android.app.ActivityThread.access$3300(ActivityThread.java:125) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2087) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at android.os.Looper.loop(Looper.java:123) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at android.app.ActivityThread.main(ActivityThread.java:4627) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at java.lang.reflect.Method.invokeNative(Native Method) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at java.lang.reflect.Method.invoke(Method.java:521) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at dalvik.system.NativeStart.main(Native Method) 
02-24 11:05:45.695: E/AndroidRuntime(11363): Caused by: java.lang.UnsatisfiedLinkError: Library converter not found 
02-24 11:05:45.695: E/AndroidRuntime(11363): at java.lang.Runtime.loadLibrary(Runtime.java:461) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at java.lang.System.loadLibrary(System.java:557) 
02-24 11:05:45.695: E/AndroidRuntime(11363): at roman10.media.ffmpeg.ffmpegService.<clinit>(ffmpegService.java:123) 

我决定重新编译converter.so文件 然而,运行在其上的NDK-build命令时,我收到这些消息:

c:\Users\user\workspace\Main\jni>c:\work\android-ndk-r8d\ndk-build 
c:/android-ndk-r8d/build/core/build-binary.mk:266: warning: overriding comm 
ands for target `c:/Users/user/workspace/Main//obj/local/armeabi/objs/converter' 

c:/android-ndk-r8d/build/core/build-binary.mk:266: warning: ignoring old co 
mmands for target `c:/Users/user/workspace/Main//obj/local/armeabi/objs/converte 
r' 
c:/android-ndk-r8d/build/core/build-binary.mk:266: warning: overriding comm 
ands for target `c:/Users/user/workspace/Main//obj/local/armeabi/objs/converter' 

c:/android-ndk-r8d/build/core/build-binary.mk:266: warning: ignoring old co 
mmands for target `c:/Users/user/workspace/Main//obj/local/armeabi/objs/converte 
r' 
c:/android-ndk-r8d/build/core/build-binary.mk:357: warning: overriding comm 
ands for target `c:/Users/user/workspace/Main//obj/local/armeabi' 
c:/android-ndk-r8d/build/core/build-binary.mk:357: warning: ignoring old co 
mmands for target `c:/Users/user/workspace/Main//obj/local/armeabi' 
c:/android-ndk-r8d/build/core/build-binary.mk:439: warning: overriding comm 
ands for target `c:/Users/user/workspace/Main//libs/armeabi' 
c:/android-ndk-r8d/build/core/build-binary.mk:439: warning: ignoring old co 
mmands for target `c:/Users/user/workspace/Main//libs/armeabi' 
c:/android-ndk-r8d/build/core/build-binary.mk:357: warning: overriding comm 
ands for target `c:/Users/user/workspace/Main//obj/local/armeabi' 
c:/android-ndk-r8d/build/core/build-binary.mk:357: warning: ignoring old co 
mmands for target `c:/Users/user/workspace/Main//obj/local/armeabi' 
"Compile thumb : converter <= cmdutils.c 
c:/Users/user/workspace/Main//jni/cmdutils.c:32:34: fatal error: libavformat/avf 
ormat.h: No such file or directory 
compilation terminated. 
make: *** [c:/Users/user/workspace/Main//obj/local/armeabi/objs/converter/cmduti 
ls.o] Error 1 

我能做些什么来解决这个问题,并使其工作?

回答