3

このプロジェクトを参照として使用しています。コードはhttp://roman10.net/src/affmpeg.zipで入手できます。

プロジェクトが提案するものとは異なる構成で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

これを修正して機能させるにはどうすればよいですか?

4

1 に答える 1

0

エラーによると、libavformatヘッダーがありません。

私はこれを見つけました:

AndroidのFFMpeg、libavcodec関数への未定義の参照(コマンドラインにリストされていますが)

于 2013-02-24T09:42:54.100 に答える