diff --git a/jni/Android.mk b/jni/Android.mk index 1129342..f7d4965 100644 --- a/jni/Android.mk +++ b/jni/Android.mk @@ -41,14 +41,20 @@ else ARCH := arm endif +NDK_WHICH := $(shell test -f $(shell dirname $(shell which ndk-which))/ndk-which && echo yes) + v8basepath := $(LOCAL_PATH)/v8core/v8 v8libpath := $(v8basepath)/out/android_$(ARCH).release//obj.target/tools/gyp/ v8libs := $(v8libpath)/libv8_base.a $(v8libpath)/libpreparser_lib.a $(v8libpath)/libv8_nosnapshot.a $(v8libs): MY_ARCH_ABI := $(TARGET_ARCH_ABI) - + $(v8libs): - cd $(v8basepath) && TARGET_ARCH=$(MY_ARCH_ABI) ./build.sh + ifeq ($(NDK_WHICH), yes) + cd "$(v8basepath)" && TARGET_ARCH="$(MY_ARCH_ABI)" TOOLCHAIN_PATH="$(shell dirname $(shell (ndk-which --abi $(TARGET_ARCH) objdump)))" ./build.sh + else + cd "$(v8basepath)" && TARGET_ARCH="$(MY_ARCH_ABI)" ./build.sh + endif $(TARGET_OUT)/libweexv8.so: $(v8libs) diff --git a/jni/Application.mk b/jni/Application.mk index 9c1c6c7..f20eba1 100644 --- a/jni/Application.mk +++ b/jni/Application.mk @@ -1,4 +1,4 @@ -APP_ABI := armeabi x86 -APP_PLATFORM := android-9 +APP_ABI := armeabi-v7a x86 +APP_PLATFORM := android-16 #LOCAL_CPP_FEATURES += exceptions #APP_CPPFLAGS := -frtti -fexceptions diff --git a/jni/v8core/com_taobao_weex_bridge_WXBridge.cpp b/jni/v8core/com_taobao_weex_bridge_WXBridge.cpp index 08d7df6..bd68a42 100644 --- a/jni/v8core/com_taobao_weex_bridge_WXBridge.cpp +++ b/jni/v8core/com_taobao_weex_bridge_WXBridge.cpp @@ -5,6 +5,7 @@ #include #include #include +#include jclass jBridgeClazz; diff --git a/jni/v8core/v8/build.sh b/jni/v8core/v8/build.sh index 2be9e41..8fda2b3 100755 --- a/jni/v8core/v8/build.sh +++ b/jni/v8core/v8/build.sh @@ -13,12 +13,18 @@ fi # If not defined ANDROID_TOOLCHAIN, it search the ndk directory and find the gcc-4.4.3 to compile v8. if [ -z "$ANDROID_TOOLCHAIN" ]; then if [ "$TARGET_ARCH" = "x86" ]; then - TOOLCHAIN_PATH=`dirname $(find $NDK_ROOT/toolchains $NDK_ROOT/build -name 'i686*' -name '*-g++' | sort -r | head -n 1)` + if [ -z "$TOOLCHAIN_PATH" ]; then + TOOLCHAIN_PATH=`dirname $(find $NDK_ROOT/toolchains $NDK_ROOT/build -name 'i686*' -name '*-g++' | sort -r | head -n 1)` + fi elif [ "$TARGET_ARCH" = "armeabi" ]; then - TOOLCHAIN_PATH=`dirname $(find $NDK_ROOT/toolchains $NDK_ROOT/build -name 'arm*' -name '*-g++' | sort -r| head -n 1)` + if [ -z "$TOOLCHAIN_PATH" ]; then + TOOLCHAIN_PATH=`dirname $(find $NDK_ROOT/toolchains $NDK_ROOT/build -name 'arm*' -name '*-g++' | sort -r| head -n 1)` + fi EXTRA_OPTION="armv7=false vfp2=off vfp3=off" elif [ "$TARGET_ARCH" = "armeabi-v7a" ]; then - TOOLCHAIN_PATH=`dirname $(find $NDK_ROOT/toolchains $NDK_ROOT/build -name 'arm*' -name '*-g++' | sort -r| head -n 1)` + if [ -z "$TOOLCHAIN_PATH" ]; then + TOOLCHAIN_PATH=`dirname $(find $NDK_ROOT/toolchains $NDK_ROOT/build -name 'arm*' -name '*-g++' | sort -r| head -n 1)` + fi EXTRA_OPTION="armv7=true vfp2=on vfp3=on" else echo "unsupported platform " "$TARGET_ARCH" 1>&2