当前位置: 首页 > 知识库问答 >
问题:

Android java.lang.UnsatisfiedLinkError-找不到“libffmpeg.so”

谢俊英
2023-03-14

我已经用eclipse https://github.com/youtube/yt-watchme构建了这个项目,它运行得很好,但是当我试图在android studio中构建这个项目时,我的Ffmpeg类出错了,我已经将我在eclipse中制作的运行演示中的所有文件复制到了我的android studio项目目录中,我将发布我的目录结构和build.gradle,请有人指导我吗?请参阅以下内容

Process: com.google.android.apps.watchme, PID: 6330
    java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.google.android.apps.watchme-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]] couldn't find "libffmpeg.so"
            at java.lang.Runtime.loadLibrary(Runtime.java:366)
            at java.lang.System.loadLibrary(System.java:988)
            at com.google.android.apps.watchme.Ffmpeg.<clinit>(Ffmpeg.java:22)
            at com.google.android.apps.watchme.VideoStreamingConnection.open(VideoStreamingConnection.java:71)
            at com.google.android.apps.watchme.StreamerService.startStreaming(StreamerService.java:73)
            at com.google.android.apps.watchme.StreamerActivity.startStreaming(StreamerActivity.java:161)
            at com.google.android.apps.watchme.StreamerActivity.access$200(StreamerActivity.java:39)
            at com.google.android.apps.watchme.StreamerActivity$1.onServiceConnected(StreamerActivity.java:55)
            at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1208)
            at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1225)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5343)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:700)

和JNI函数中

共有1个答案

陆弘新
2023-03-14

是否为所有ABI添加了“libffmpeg.so”文件?('x86','x86_64','armeabi','armeabi-v7a','arm64-v8a','mips','mips64')如果没有,则仅为可用的ABI生成apk。假设为'armeabi'、'armeabi-v7a'abis拥有libffmpeg.so文件。然后您需要在app.gradle的android{}部分的ending中添加以下内容。

splits {

    // Configures multiple APKs based on ABI.
    abi {

        // Enables building multiple APKs per ABI.
        enable true

        // By default all ABIs are included, so use reset() and include to specify that we only
        // want APKs for x86, armeabi-v7a, and mips.

        // Resets the list of ABIs that Gradle should create APKs for to none.
        reset()

        // Specifies a list of ABIs that Gradle should create APKs for.


        include 'armeabi', 'armeabi-v7a'
        // Specifies that we do not want to also generate a universal APK that includes all ABIs.
        universalApk false
    }
}
 类似资料:
  • 我是一名学习使用jsp和Servlet构建Web应用程序的学生。一个月以来,我的Web应用程序项目一直运行良好,但今天它的行为突然变得奇怪了。当我提交jsp页面时,它无法找到我的servlet。我已经使用servlet注释来映射请求。 以下是我的JSP:- 以下是我的servlet:- 以下是我的控制台日志:-

  • 问题内容: 我正在运行Windows 8,但无法使javac正常工作。 我已将环境变量中的PATH设置为 我尝试过是否使用’;’ 但无济于事。 我最近在桌面上添加了这个问题;工作,但不是这种情况。 我确保javac确实也存在于bin中。 关于修复的任何建议将不胜感激。 编辑echo%PATH%给出: 确切的错误是:无法将“ javac”识别为内部或外部命令,可操作程序或批处理文件。 问题答案: 至

  • 问题内容: 我正在为我的项目使用jersey,并尝试从字符串中解析URI。 代码很简单,但是下面出现错误 看来程序找不到委托。我已经导入了,并且应该在我的构建路径中包含委托。但我仍然会收到此错误。 有人知道如何解决吗?谢谢! 问题答案: 如果您使用的是Maven,请使用以下依赖项: 对于Gradle,以下将起作用:

  • 问题内容: 我只需要重新安装mysql,我就无法启动它。它找不到套接字(mysql.sock)。问题是我也不能。在Mac OS X 10.4终端中,键入:,然后返回。套接字文件存在于该位置是有道理的,但实际上并不存在。 如何找到套接字文件? 如果locate返回错误的位置,则它必须具有某种内存,并且可能具有索引。如何刷新该索引? 问题答案: 回答问题的第一部分: 跑 并检查“ socket”变量

  • 问题内容: 我正在Eclipse 4.3中设置一个Spring 3.2.3 + Hibernate 4项目。 当我将代码添加到上下文中时,我开始在每个bean中收到以下错误: 现在,我在项目中添加了AspectJ Tools和Cglib依赖项,并且JAR在那里,包括它找不到的类。该应用程序正常运行,并且Spring正在成功管理会话和事务。 我一直在寻找解决方案,但每个答案都指出,由于缺少JAR,因

  • 问题内容: 我是Hibernate的新手,正在阅读《 Hibernate的Java持久性》这本书,并尝试从那里实现该示例。到目前为止,我的Ant构建是成功的,但是当我尝试执行包含main方法的类时,却收到此错误消息: 很明显,hibernate状态找不到我的配置文件,该文件位于根目录中。 项目 我的完整源代码可以在这里找到:http : //pastebin.com/bGDUrxUf 我有一个正在

  • 问题内容: 当我尝试使用或发生以下错误时 java.lang.NoSuchMethodError:sun.security.ssl.SSLSessionImpl。(Lsun / security / ssl / ProtocolVersion; Lsun / security / ssl / CipherSuite; Ljava / util / Collection; Lsun / securi

  • 问题内容: 由于某些原因,我的节点服务器无法提供路由,所以我总是会收到404错误。 我尝试编译不同的节点版本( 当前 版本 为0.6.13,该 版本 也可以在实际运行的服务器上运行 )。 从app.js 尝试调用socket.io.js时,我得到并没有错误。 我从本地主机和端口8000尝试,我使用express框架 这是来自app.js的代码: 问题答案: 请检查您的Express版本。Expre