Android ndk 未 bundle v8 .a 文件符号

标签 android android-ndk v8

我有一个类似的项目J2V8将 v8 bundle 到 android。但是在编译后 J2V8 具有所有 v8 符号,但 similar project丢失所有 v8 符号。可以查看原来的J2V8.so here通过使用命令

nm -D libj2v8.so | grep "GetIsolate"

你可以得到类似的东西

003530fc T _ZN2v815SnapshotCreator10GetIsolateEv
003613c4 T _ZN2v86Object10GetIsolateEv
0035f78c T _ZN2v87Context10GetIsolateEv
0038c354 W _ZNK2v88internal10HeapObject10GetIsolateEv
00503a78 T _ZNK2v88internal11MessageImpl10GetIsolateEv
00503b4c T _ZNK2v88internal16EventDetailsImpl10GetIsolateEv

但编译后sample project , 相关输出为无。

最佳答案

对于 Android Studio 项目,无论是库 .aar 还是应用程序 .apk,在构建过程中,有一个步骤会剥离动态共享库的调试符号,即.so

如果你想保留所有符号未被删除,那么你可以将以下配置添加到你的 build.gradle 中。

android {
    ...
    packagingOptions{
        doNotStrip "*/armeabi/*.so"
        doNotStrip "*/arm64-v8a/*.so"
        doNotStrip "*/armeabi-v7a/*.so"
        doNotStrip "*/x86/*.so"
        doNotStrip "*/x86_64/*.so"
    } 
    ...
}

关于Android ndk 未 bundle v8 .a 文件符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52455332/

相关文章:

android - 如何在安卓浏览器中查看pdf?

android - 三星设备上的 ACTION_IMAGE_CAPTURE 模糊

android - 如何在运行 expo build android 时修复此错误?

javascript - 如何使用 V8 调试器调试 MongoDB JavaScript

c# - C# 的类似 V8 的哈希表?

java - 如何取消正在进行的通知?

android - 修改Java文件,是否需要每次运行ndk-build?

java - android 中的 speex 支持

android - 如何从命令行执行 "Build/Refresh Linked C++ Projects"?

node.js - 增加 Electron 内存限制