我在我的 android 应用程序中使用 libstandalonelibwebviewchromium.so,当我调用本机方法时,它会抛出 "java.lang.UnsatisfiedLinkError: No implementation" 。我调查了这个问题,发现库中的函数名称不同。我使用“nm -gD libstandalonelibwebviewchromium.so”命令列出所有方法。例如 :
方法“org_chromium_base_library_1loader_LibraryLoader_registerNonMainDexJni”更改为“Java_J_N_MIOj213u”。
如何在构建时配置 chromium 以保留原始库方法名称?
请帮忙....
谢谢你,
阿维舍克纳特
////////////////////////////////// 编辑 /////////////// /////////////////
对于 Android Chromium 源结帐,我遵循了以下链接: https ://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md
- 我已经从 github 签出了适用于 Android 的 Chromium 源代码。
- 然后我在 ubuntu 系统中运行这些命令
$ gclient sync
$ gn gen --args='target_os="android" target_cpu="arm" is_debug=false' out/Default
$ ninja -C out/Default webview_instrumentation_apk - 执行这些命令后,在 out/Default 文件夹中生成“ libstandalonelibwebviewchromium.so ”。
我在我的项目中使用了libstandalonelibwebviewchromium.so并将其保存在 jniLibs 文件夹中。
我还运行了这个"nm -gD libstandalonelibwebviewchromium.so"命令,它给出了一个符号列表,但它们都像"Java_J_N_MIOj213u"。