Android 无法读取libvlcjni.so;无法检查设备ABI

Android 无法读取libvlcjni.so;无法检查设备ABI,android,libvlc,Android,Libvlc,我按照编译过的项目中的过程编译了libVlc for android,在eclipse中不显示任何错误,但当我在设备上运行它时,它抛出以下错误 05-21 14:37:50.834: D/dalvikvm(14423): GC_CONCURRENT freed 181K, 8% free 9633K/10439K, paused 17ms+7ms, total 62ms 05-21 14:37:51.034: E/VLC/LibVLC/Util(14423): WARNING: Unable t

我按照编译过的项目中的过程编译了libVlc for android,在eclipse中不显示任何错误,但当我在设备上运行它时,它抛出以下错误

05-21 14:37:50.834: D/dalvikvm(14423): GC_CONCURRENT freed 181K, 8% free 9633K/10439K, paused 17ms+7ms, total 62ms
05-21 14:37:51.034: E/VLC/LibVLC/Util(14423): WARNING: Unable to read libvlcjni.so; cannot check device ABI!
05-21 14:37:51.034: E/VLC/LibVLC/Util(14423): WARNING: Cannot guarantee correct ABI for this build (may crash)!
05-21 14:37:51.065: W/VLC/LibVLC(14423): Unable to load the iomx library: java.lang.UnsatisfiedLinkError: Couldn't load iomx-ics: findLibrary returned null
05-21 14:37:51.065: E/VLC/LibVLC(14423): Can't load vlcjni library: java.lang.UnsatisfiedLinkError: Couldn't load vlcjni: findLibrary returned null

请帮助我解决此问题,提前感谢

您收到此错误,因为您尚未导出设备的abi,如说明中所述。我假设您也没有遵循文档中的“环境设置”部分。因此,请执行以下操作:

确保已下载NDK,然后在终端中运行此(使用路径):

导出ANDROID\u NDK=/path/to/ANDROID NDK>

然后,编译.sh文件并导出设备(或模拟器的abi)。sh文件的编译直接链接到abi问题,因为脚本处理abi。您可以在脚本(compile.sh)的代码中看到这一点:


我建议再次阅读Android Compile文档,并按照说明一步一步地进行操作。

您之所以会出现此错误,是因为您没有按照说明中所述导出设备的abi。我假设您也没有遵循文档中的“环境设置”部分。因此,请执行以下操作:

确保已下载NDK,然后在终端中运行此(使用路径):

导出ANDROID\u NDK=/path/to/ANDROID NDK>

然后,编译.sh文件并导出设备(或模拟器的abi)。sh文件的编译直接链接到abi问题,因为脚本处理abi。您可以在脚本(compile.sh)的代码中看到这一点:


我建议再次阅读Android Compile文档,并按照说明一步一步地进行操作。

您之所以会出现此错误,是因为您没有按照说明中所述导出设备的abi。我假设您也没有遵循文档中的“环境设置”部分。因此,请执行以下操作:

确保已下载NDK,然后在终端中运行此(使用路径):

导出ANDROID\u NDK=/path/to/ANDROID NDK>

然后,编译.sh文件并导出设备(或模拟器的abi)。sh文件的编译直接链接到abi问题,因为脚本处理abi。您可以在脚本(compile.sh)的代码中看到这一点:


我建议再次阅读Android Compile文档,并按照说明一步一步地进行操作。

您之所以会出现此错误,是因为您没有按照说明中所述导出设备的abi。我假设您也没有遵循文档中的“环境设置”部分。因此,请执行以下操作:

确保已下载NDK,然后在终端中运行此(使用路径):

导出ANDROID\u NDK=/path/to/ANDROID NDK>

然后,编译.sh文件并导出设备(或模拟器的abi)。sh文件的编译直接链接到abi问题,因为脚本处理abi。您可以在脚本(compile.sh)的代码中看到这一点:


我建议再次阅读Android编译文档,并按照说明一步一步地进行操作。

如果您使用的是Android Studio,请将
*。因此
转到
src/jniLibs/armeabi-v7a


如果您使用的是Android Studio,请将
*。因此
移动到
src/jniLibs/armeabi-v7a


如果您使用的是Android Studio,请将
*。因此
移动到
src/jniLibs/armeabi-v7a


如果您使用的是Android Studio,请将
*。因此
移动到
src/jniLibs/armeabi-v7a


实际上,我将那些必需的环境变量添加到了~/.profile中,它正在工作,但当我将ubuntu从10.04更新到12.04时,这些命令无法从终端执行,可能出现错误。没有找到任何命令。实际上,我将那些必需的环境变量添加到了~/.profile中,它正在工作,但当我更新了ubuntu从10.04到12.04,这些命令无法从终端执行,可能出现错误没有命令发现实际上我将这些必需的环境变量添加到了~/.profile中,并且它正在工作,但是当我将ubuntu从10.04更新到12.04时,这些命令无法从终端执行,可能出现错误没有命令发现将那些必需的环境变量添加到~/.profile中,它正在工作,但当我将ubuntu从10.04更新到12.04时,这些命令无法从终端执行,可能没有找到任何命令
# try to detect NDK version
REL=$(grep -o '^r[0-9]*.*' $ANDROID_NDK/RELEASE.TXT 2>/dev/null|cut -b2-)
case "$REL" in
    9*)
        GCCVER=4.8
        CXXSTL="/"${GCCVER}
    ;;
    8?*)
        # we don't use 4.4.3 because it doesn't handle threads correctly.
        # TODO : clang?
        if test -d ${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.7
        # if gcc 4.7 is present, it's there for all the archs (x86, mips, arm)
        then
            # since r8d
            GCCVER=4.7
        else
            GCCVER=4.6
        fi
        CXXSTL="/"${GCCVER}
    ;;
    7|8|*)
        echo "You need the NDKv8b or later"
        exit 1
    ;;
esac

export GCCVER
export CXXSTL

# Set up ABI variables
if [ ${ANDROID_ABI} = "x86" ] ; then
    TARGET_TUPLE="i686-linux-android"
    PATH_HOST="x86"
    HAVE_X86=1
    PLATFORM_SHORT_ARCH="x86"
elif [ ${ANDROID_ABI} = "mips" ] ; then
    TARGET_TUPLE="mipsel-linux-android"
    PATH_HOST=$TARGET_TUPLE
    HAVE_MIPS=1
    PLATFORM_SHORT_ARCH="mips"
else
    TARGET_TUPLE="arm-linux-androideabi"
    PATH_HOST=$TARGET_TUPLE
    HAVE_ARM=1
    PLATFORM_SHORT_ARCH="arm"
fi