【问题标题】:Xuggler: UnsatisfiedLinkError: Couldn't load xuggle-xuggler: findLibrary returned nullXuggler:UnsatisfiedLinkError:无法加载 xuggle-xuggler:findLibrary 返回 null
【发布时间】:2014-08-23 18:56:19
【问题描述】:

我尝试在安卓设备上将视频转换为 .mp3 文件。

所以经过长时间的搜索和谷歌搜索(不确定它是否分别拼写为 so)我找到了 Xuggler。 它是最合适的解决方案,因为我自己无法移植 ffmepg(没有可用的 linux / ubuntu)并且 JAVE 给了我太多错误。所以我决定使用 Xuggler。

我添加了 slf4j-api-1.7.7.jarxuggle-xuggler-3.4.1012.201001312056.jar(不是 5.4 的实际版本,因为我的 android 无法处理它 ;() 作为外部库

import com.xuggle.mediatool.IMediaReader;
import com.xuggle.mediatool.IMediaViewer;
import com.xuggle.mediatool.IMediaWriter;
import com.xuggle.mediatool.ToolFactory;

String source = this.storagePath + "/" + this.FileName + this.Video_encoding;
String target = this.storagePath + "/" + this.FileName + ".mp3";

IMediaReader mediaReader = ToolFactory.makeReader(source);
IMediaWriter mediaWriter = ToolFactory.makeWriter(target);
mediaReader.addListener(mediaWriter);
while (mediaReader.readPacket() == null) ;

我在这一行收到以下错误:

IMediaReader mediaReader = ToolFactory.makeReader(source);

这是我的堆栈跟踪:

08-23 20:27:32.783: E/AndroidRuntime(19678): FATAL EXCEPTION: AsyncTask #1
08-23 20:27:32.783: E/AndroidRuntime(19678): java.lang.RuntimeException: An error occured while executing doInBackground()
08-23 20:27:32.783: E/AndroidRuntime(19678):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at java.lang.Thread.run(Thread.java:856)
08-23 20:27:32.783: E/AndroidRuntime(19678): Caused by: java.lang.ExceptionInInitializerError
08-23 20:27:32.783: E/AndroidRuntime(19678):    at com.xuggle.mediatool.MediaReader.<init>(MediaReader.java:137)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at com.xuggle.mediatool.ToolFactory.makeReader(ToolFactory.java:77)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at at.m4tho.youtubemp3sync.Async_DL.ConvertToMp3(Async_DL.java:194)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at at.m4tho.youtubemp3sync.Async_DL.doInBackground(Async_DL.java:70)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at at.m4tho.youtubemp3sync.Async_DL.doInBackground(Async_DL.java:1)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
08-23 20:27:32.783: E/AndroidRuntime(19678):    ... 5 more
08-23 20:27:32.783: E/AndroidRuntime(19678): Caused by: java.lang.ExceptionInInitializerError
08-23 20:27:32.783: E/AndroidRuntime(19678):    at com.xuggle.xuggler.IContainer.<clinit>(IContainer.java:1457)
08-23 20:27:32.783: E/AndroidRuntime(19678):    ... 12 more
08-23 20:27:32.783: E/AndroidRuntime(19678): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load xuggle-xuggler: findLibrary returned null
08-23 20:27:32.783: E/AndroidRuntime(19678):    at java.lang.Runtime.loadLibrary(Runtime.java:365)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at java.lang.System.loadLibrary(System.java:535)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at com.xuggle.ferry.JNILibraryLoader.loadLibrary0(JNILibraryLoader.java:265)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at com.xuggle.ferry.JNILibraryLoader.loadLibrary(JNILibraryLoader.java:168)
08-23 20:27:32.783: E/AndroidRuntime(19678):    at com.xuggle.xuggler.XugglerJNI.<clinit>(XugglerJNI.java:19)
08-23 20:27:32.783: E/AndroidRuntime(19678):    ... 13 more

所以我浪费了太多时间来寻找替代方案或一些修复,因此我问你。有人知道如何解决这个问题吗?

如果这恰好是一个重复帖子并且有人问过同样的问题,请给我一个链接。

对不起我的英语不好;)

【问题讨论】:

    标签: android audio video xuggler unsatisfiedlinkerror


    【解决方案1】:

    我以前见过 UnsatisfiedLinkError,有几篇关于它的帖子可能会有所帮助。但首先,请确保您为 JVM 使用了正确版本的 xuggler(例如,32 位 xuggler 用于 32 位 java,64 用于 64 位 java)。有关详细信息,请参阅this 帖子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 2014-10-10
      • 2012-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多