v8 :: Initialize在32位android设备上崩溃

时间:2020-07-01 08:10:53

标签: android-studio arm v8 armv7

我已按照文档https://v8.dev/docs/cross-compile-arm

为Android构建了v8

我特别需要v8_monolith.a档案库以在正在进行的android项目中使用。 另外,我需要使用NDK 21版来构建它,这不是我们在v8的// third_party / android_ndk目录中获得的版本。因此,我下载了NDKr21,并将NDK文件夹复制到// third_party / android_ndk文件夹,并删除了那里的r20版本,以便V8在构建时使用NDKr21。

为arm64-v8a构建并将v8_monolith.a库复制到android项目后,它运行良好。但是,在为手臂构建它并再次复制该库,运行该应用程序之后,该应用程序崩溃了。所以我在调试模式下为手臂构建了v8。 对于 arm abi ,使用了以下参数:

target_os =“ android”

is_debug = true

is_component_build = false

target_cpu =“手臂”

v8_target_cpu =“手臂”

v8_enable_pointer_compression =假

clang_use_chrome_plugins =假

v8_monolithic = true

v8_use_external_startup_data = false

symbol_level = 2

v8_enable_i18n_support = false

然后使用命令 ninja -C out.gn/arm.release v8_monolith -vv

进行构建

事实证明,它对于arm64-v8a和x86_64(基本上是64位)运行正常,而对于x86和arm(32位)则崩溃。

在支持armeabi-v7a的设备上运行后,logcat输出为:v8_crash

我有linux-x86_64机器。

在32位android设备上构建和运行v8是否需要任何参数?我在这里做什么错了?

0 个答案:

没有答案