【问题标题】:Can I refactor name libcocos2dcpp.so?我可以重构名称 libcocos2dcpp.so 吗?
【发布时间】:2023-03-15 16:00:01
【问题描述】:

libcocos2dcpp.so 位于路径 proj.android\libs\armeabi

1)我想学习在将名称“libcocos2dcpp.so”更改为“randomname.so”后修改它的外观

(意图是,不确定,但如果人们不知道它是用什么东西制作的,它可能有助于保护我的游戏的源代码,我的意思是 cpp 因为 libcocos2dcpp.so 有 cpp 结束)

2) 另外,这个 libcocos2dcpp.so 是每次我构建代码时新创建的,还是在其整个生命周期中保持不变?

【问题讨论】:

  • 错误的假设,省去麻烦。将二进制文件反编译回 C++ 是不可行的,并且不会产生可用的结果;知道从哪里开始执行此操作的人不会因为包含的库的名称而被推迟。
  • 那么,您是说编译后的二进制文件在它的整个生命周期中保持不变,并且不会在我每次构建我的 cocos2d-x 项目时构建?
  • 不,我不是这么说的;你从哪里得到的?请再次阅读评论以理解我所说的内容。
  • 你用的是哪个版本的cocos2d-x?
  • @323go ,为什么会产生不可用的结果?

标签: android cocos2d-x cocos2d-x-3.0 cocos2d-x-2.x


【解决方案1】:

您可以通过在 Android.mk 文件中使用 LOCAL_MODULE_FILENAME 来更改您的库名称。根据Android-NDK文件夹下的ANDROID-MK文档:

LOCAL_MODULE_FILENAME
    This variable is optional, and allows you to redefine the name of
    generated files. By default, module <foo> will always generate a
    static library named lib<foo>.a or a shared library named lib<foo>.so,
    which are standard Unix conventions.

    You can override this by defining LOCAL_MODULE_FILENAME, For example:

        LOCAL_MODULE := foo-version-1
        LOCAL_MODULE_FILENAME := libfoo

    NOTE: You should not put a path or file extension in your
    LOCAL_MODULE_FILENAME, these will be handled automatically by the
    build system.

您可以将您的 lib 文件名重命名为

LOCAL_MODULE := randomname
LOCAL_MODULE_FILENAME := librandomname

所以构建系统会自动将库构建为librandomname.so

别忘了在Android中改代码Activity

static {
    System.loadLibrary("randomname");
}

【讨论】:

  • 非常感谢。你能告诉我把代码放在哪里吗 System.loadLibrary("randomname");因为在 Cocos2dxActivity.java 我发现了以下代码>> protected void onLoadNativeLibraries() { try { ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);捆绑包 = ai.metaData;字符串 libName = bundle.getString("android.app.lib_name"); System.loadLibrary(libName); } 捕捉(异常 e){ e.printStackTrace(); } }
  • 我觉得上面的代码块有点乱。所以又来了。在 Cocos2dxActivity.java 我发现, String libName = bundle.getString("android.app.lib_name"); System.loadLibrary(libName);那么我应该在这里替换什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-29
  • 1970-01-01
  • 2017-08-14
  • 2011-05-31
  • 2011-10-03
  • 2012-11-02
  • 1970-01-01
相关资源
最近更新 更多