在Windows上使用LibVLC for android进行开发

Nic*_*oso 11 android libvlc

我一直在努力使用Android-LibVLC运行一个演示应用程序.

我只能找到linux的文档,无法让应用程序在我的设备上运行(尽管它编译).

当我启动应用程序时,它会记录:

12-16 15:58:19.572    9121-9121/? E/VLC/LibVLC? Can't load vlcjni library: java.lang.UnsatisfiedLinkError: Couldn't load vlcjni from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.compdigitec.libvlcandroidsample-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.compdigitec.libvlcandroidsample-1, /vendor/lib, /system/lib]]]: findLibrary returned null
12-16 15:58:19.667    9135-9135/com.compdigitec.libvlcandroidsample E/VLC/LibVLC? Can't load vlcjni library: java.lang.UnsatisfiedLinkError: Couldn't load vlcjni from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.compdigitec.libvlcandroidsample-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.compdigitec.libvlcandroidsample-1, /vendor/lib, /system/lib]]]: findLibrary returned null
Run Code Online (Sandbox Code Playgroud)

我已经使用org.videolan.libvlc目录类编译了项目APK作为源根目录的一部分,并且在同一模块中使用了jni目录并且失败了,我还将整个VLC模块作为单独的库模块包含在内这是一种依赖,这也失败了.

有没有人有一个成熟的方法来配置/构建一个Android项目与LibVLC,从Windows?或指示/文档的链接?(我找不到任何东西).

目标是将我的Android MediaPlayer依赖类替换为支持更多文件类型/编解码器的库/实现.

Ani*_*she 2

在 Windows 中构建时,您会收到警告,提示"Android.mk:iomx-hc: non-system libraries in linker flags: -lgcc -lstagefright - lmedia -lbinder"您将获得多个文件。它还警告 "Android NDK:This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES" ,即使您获得构建输出,它也不会具有所需的文件。因此,您在运行应用程序时会收到错误。

现在如果你查看 Android.mk 你会发现

include $(CLEAR_VARS)

LOCAL_MODULE     := libiomx-gingerbread
LOCAL_SRC_FILES  := ../$(VLC_SRC_DIR)/modules/codec/omxil/iomx.cpp
LOCAL_C_INCLUDES := $(VLC_SRC_DIR)/modules/codec/omxil $(ANDROID_SYS_HEADERS_GINGERBREAD)/frameworks/base/include $(ANDROID_SYS_HEADERS_GINGERBREAD)/system/core/include
LOCAL_CFLAGS     := -Wno-psabi
LOCAL_LDLIBS     := -L$(ANDROID_LIBS) -lgcc -lstagefright -lmedia -lutils -lbinder

include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)

我从这里下载了vlc的源代码,提取源代码后我能够找到“extracted_pa​​th”\vlc-2.1.4\modules\codec\omxil\iomx.cpp。因此,如果您可以将 VLC_SRC_DIR 的包含路径更改为在 WINDOWS 计算机上提取 vlc 源代码的目录,我认为您应该能够编译它。如果不使用运行 Linux 的虚拟机来编译该项目。它还需要存档库 (.a),您在 vlc 源代码中找不到该库。因此,您必须首先构建 vlc 源代码,然后将所有内容包含在项目中。我认为虚拟机中的linux是你最好的选择。