古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。这篇文章主要讲述Android ndk没有捆绑v8 .a文件符号相关的知识,希望能为你提供帮助。
我有一个类似于J2V8的项目,它将v8捆绑到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没有捆绑v8 .a文件符号】最后通过直接包含v8源项目来解决这个问题。
推荐阅读
- 离子 - 错误(找不到模块'android-versions')
- UnsatisfiedLinkError,Cocos2D-x app在启动时崩溃
- Android的双簧管库中是否支持音频处理()
- Android NDK undefined引用google protobuf
- Android通话录音未录制来电语音
- Android Studio 3.0.1不会构建NDK静态库
- 使用NDK for Android编译GRPC的CSharp扩展
- 你如何在android项目(gradle)中包含'com.google.protobuf'作为完整但不是精简版()
- C ++读取内部Android NDK文件