在HarmonyOS项目中,当你开启编译混淆设置并构建项目后,生成的sourceMaps.map
文件通常不会自动生成,除非你明确配置了相关选项来生成这些映射文件。标准的混淆过程主要是为了保护源代码不被轻易反编译和理解,因此默认情况下不会生成详细的映射文件。
然而,如果你需要生成这些映射文件以支持调试或分析,你可能需要查看或修改你的构建脚本或IDE设置来启用这一功能。在HarmonyOS或类似的Android Studio/Gradle环境中,这通常涉及到在构建配置中添加特定的代码或插件。
由于HarmonyOS的具体实现和文档可能随时间更新,以下是一个基于一般Android开发经验的假设性指导,你可以尝试在HarmonyOS环境中调整:
- 检查构建脚本:查看你的
build.gradle
文件或相应的构建配置文件,看是否有关于生成source map的选项。在Android项目中,这通常涉及到设置minifyEnabled
和shrinkResources
为true,并可能还需要设置proguardFiles
来指定混淆规则文件。但在HarmonyOS中,这些设置可能有所不同。 - 使用ProGuard或类似工具:如果HarmonyOS支持ProGuard或类似的代码混淆工具,你可能需要查看这些工具的文档,了解如何配置以生成source map文件。在Android中,这通常是通过在ProGuard配置文件中添加
-printmapping mapping.txt
来完成的,但在HarmonyOS中可能有所不同。 - 查看HarmonyOS文档和社区:由于HarmonyOS是一个较新的平台,其文档和社区可能包含关于如何生成source map文件的最新信息。
- 联系技术支持:如果上述方法都无法解决问题,你可以考虑联系HarmonyOS的技术支持团队或访问其开发者论坛寻求帮助。
综上所述,在HarmonyOS中开启混淆后,默认情况下可能不会生成sourceMaps.map
文件。如果你需要这些文件,你需要检查并可能修改你的构建配置,或者查找HarmonyOS提供的特定解决方案。
可以借助三方库aki 实现class的导出;AKI 提供 JSBIND_CLASS 对 C++ 类/结构体进行绑定,根据aki使用修改下 CMakeLists.txt 和 napi_init.cpp 文件配置;在声明需要被绑定的类后就可以正常导出。参考下:
aki绑定 Native 对象/结构体用例:https://gitee.com/openharmony-sig/aki/tree/master/example/oho...
aki介绍:https://gitee.com/openharmony-sig/aki#3-%E4%BD%BF%E7%94%A8-aki
C++ 侧的class可以通过napi_define_class将构造函数与一个ArkTS的类绑定,这样在Arkts侧创建这个类的实例的时候就会调用c侧的构造函数在C侧也创建一个绑定的类,下面是一个示例demo,其中成员函数分为普通函数和静态成员函数,区别是普通成员函数需要创建一个JS实例与C++ 实例绑定,而静态函数不需要。在C++中定义一个类: