2014-04-13 2 views
1

저는 안드로이드 용 ffmpeg를 만들고 있습니다. 팔에서는 잘 작동하지만 x86에서는 실패합니다.여러 아치 용 안드로이드 ffmpeg

편집이 정상입니다. 나는이 86는 FFmpeg lib 디렉토리를 사용하는 APK를 실행한다면, 로그 캣은 다음과 같은 오류를 출력 할 것이다 : 나는 APK 파일을 확인했던

04-13 10:30:09.862: E/dalvikvm(1262): dlopen("/data/app-lib/com.misgood.ipcamdemo-2/libplayer.so") failed: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libavformat-55.so" needed by "libplayer.so"; caused by load_library(linker.cpp:745): library "libavformat-55.so" not found

. 모든 공유 라이브러리가 존재합니다.

문제는 라이브러리가 제대로 설정되어 있지 않은 것 같습니다.

의견을 보내 주시면 감사하겠습니다. 여기

내가

#!/bin/bash 
NDK=$HOME/android-ndk-r9c 

function build_core 
{ 
./configure \ 
    --prefix=$PREFIX \ 
    --enable-shared \ 
    --disable-static \ 
    --disable-doc \ 
    --disable-ffmpeg \ 
    --disable-ffplay \ 
    --disable-ffprobe \ 
    --disable-ffserver \ 
    --disable-avdevice \ 
    --disable-doc \ 
    --disable-symver \ 
    --disable-error-resilience \ 
    --disable-decoder=h263p \ 
    --disable-decoder=mpegvideo \ 
    --target-os=linux \ 
    --enable-cross-compile \ 
    --sysroot=$SYSROOT \ 
    --extra-cflags="-std=c99 -O3 -fpic -DANDROID $ADDI_CFLAGS" \ 
    --extra-ldflags="$ADDI_LDFLAGS" \ 
    $ARCH_SPEC \ 
    $ADDITIONAL_CONFIGURE_FLAG 
make clean 
make -j4 
make install 
} 

function build_arm 
{ 
SYSROOT=$NDK/platforms/android-19/arch-arm/ 
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64 
CPU=arm 
PREFIX=$(pwd)/android/$CPU 
ADDI_CFLAGS="-marm" 
ARCH_SPEC="--arch=arm \ 
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ 
" 
build_core 
} 

function build_x86 
{ 
SYSROOT=$NDK/platforms/android-19/arch-x86/ 
TOOLCHAIN=$NDK/toolchains/x86-4.8/prebuilt/linux-x86_64 
CPU=x86 
PREFIX=$(pwd)/android/$CPU 
ADDI_CFLAGS="-mincoming-stack-boundary=4 -march=i686 -mtune=atom -mstackrealign -msse3 -mfpmath=sse -m32" 
ARCH_SPEC="--arch=x86 \ 
    --cross-prefix=$TOOLCHAIN/bin/i686-linux-android- \ 
    --cpu=i686 
" 
build_core 
} 

build_x86 
+0

그냥 x_86에 빌드! 심지어 build_x86을 build_arm으로 변경했습니다. –

답변