2

I have been trying to compile latest V8 for android and was able to build static version following this post:

Android NDK linking V8 static library: cannot find symbols, but they are there

However, i still get plenty of errors when i try to use this with my JNI code.

/depot_tools/v8/out/android_arm.release/obj.target/tools/gyp/libv8_base.a(api.o):api.cc:function v8::CheckConstructor(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSObject>, char const*): error: undefined reference to 'V8_Fatal'
/depot_tools/v8/out/android_arm.release/obj.target/tools/gyp/libv8_base.a(api.o):api.cc:function v8::Utils::ReportApiFailure(char const*, char const*): error: undefined reference to 'v8::base::OS::PrintError(char const*, ...)'
/depot_tools/v8/out/android_arm.release/obj.target/tools/gyp/libv8_base.a(assembler.o):assembler.cc:function v8::internal::ExternalReference::SetUp(): error: undefined reference to 'v8::base::Mutex::Mutex()'
/depot_tools/v8/out/android_arm.release/obj.target/tools/gyp/libv8_base.a(assembler.o):assembler.cc:function v8::internal::ExternalReference::InitializeMathExpData(): error: undefined reference to 'v8::base::Mutex::Unlock()'
/depot_tools/v8/out/android_arm.release/obj.target/tools/gyp/libv8_base.a(assert-scope.o):assert-scope.cc:function v8::internal::PerThreadAssertScope<(v8::internal::PerThreadAssertType)0, false>::PerThreadAssertScope(): error: undefined reference to 'v8::base::CallOnceImpl(int*, void (*)(void*), void*)'
:


* Working Steps*

Some more tips for building it right:

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=`pwd`/depot_tools:"$PATH"
fetch v8
make android_arm.release i18nsupport=off component=static_library -j8

Thats it, no need to build standalone_static_library. In android.mk file add following dependecies:

libv8_base.a 
libv8_libbase.a 
libv8_libplatform.a
libv8_nosnapshot.a
Community
  • 1
  • 1
Shailesh
  • 131
  • 1
  • 8

0 Answers0